首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Git仅从分支目录签出新文件

Git仅从分支目录签出新文件
EN

Stack Overflow用户
提问于 2013-02-13 18:25:52
回答 4查看 3.3K关注 0票数 1

我有这样的情况。一个开发人员在./model目录中工作,他正在向其中添加新文件,然后提交新的model_files并推送到源/主目录

现在,第二个开发人员也在同一目录./model (在他自己的工作目录中)中编写模型。

假设开发者A创建了这样的模型:

代码语言:javascript
复制
./model/m1.php
./model/m2.php

现在开发者B创建这样的模型:

代码语言:javascript
复制
./model/m3.php
./model/m4.php

假设开发者A提交更改并推送到源/master,因为开发者B的工作需要m1.php和m2.php模型。

开发人员B还在项目中创建了许多其他更改/文件夹/文件,而不仅仅是在./models目录中,他的工作还没有完成。如果他合并或拉动,那么他的工作就会丢失。

开发人员B如何检索文件夹./model中仅由开发人员A创建的新模型文件。我在developer B机器上尝试了类似的东西。我假设开发人员B没有提交m3.php和m4.php,因为这些文件还没有结束。他只需要将来自开发人员A的新文件(m1.php和m2.php)放在./model目录中。在开发人员B机器上,我尝试了:

代码语言:javascript
复制
git fetch origin
git checkout origin/master ./model/*

但不幸的是这个错误给了我

代码语言:javascript
复制
error: pathspec 'model/m3.php' did not match any file(s) known to git.
error: pathspec 'model/m4.php' did not match any file(s) known to git.

但是如果我执行:

代码语言:javascript
复制
git checkout origin/master ./model/m1.php ./model/m2.php

然后它就可以工作了,但它假设我必须准确地知道我需要从这个分支签出的文件名。

有人能帮我一下吗?谢谢。

EN

回答 4

Stack Overflow用户

发布于 2013-02-13 18:31:19

开发人员B应该运行

  1. git stash
  2. git拉取源主机
  3. git stash应用

第1行隐藏了开发人员的工作,因此在执行拉操作之前,他们的分支不会有任何更改

第2行执行从远程上的主目录获取和合并。这将获得开发人员A的更改。

第3行重新应用开发人员B对m3.php和m4.php文件所做的工作。

显然,在git中执行命令时不要包含数字。

票数 3
EN

Stack Overflow用户

发布于 2013-02-13 19:28:38

我想通了。除了结尾的这个“*”之外,几乎所有的东西都没问题。

从远程分支下载文件到某个项目文件夹的正确方法是只向该文件夹添加新文件:

代码语言:javascript
复制
git fetch origin
git checkout origin/master model/
票数 3
EN

Stack Overflow用户

发布于 2013-02-13 18:30:22

您需要将传入的更改合并到工作副本中。为此,只需执行以下操作:

代码语言:javascript
复制
git fetch origin
git merge origin/master

为此,您必须首先在计算机B中提交或暂存本地更改。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14851349

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档