在git中将目录从另一个分支更新到我的分支
我有两个分支在git中将目录从另一个分支更新到我的分支,git,checkout,Git,Checkout,我有两个分支 分支机构A B分部 现在,在我的机器中,我只签出了branch-B。我需要一个来自origin/branch-a的文件夹,而不需要在我当前的回购中创建分支(实际上我正在进行自动化) 我试过这些 尝试1: branch-B$git还原--源branch-A文件夹-x 问题: 它给出了一个错误,因为我还没有在本地数据库中创建分支(分支-a) 尝试2: branch-B$git fetch`git remote show`&git checkout`git remote show`/br
branch-B$
git还原--源branch-A文件夹-x
问题: 它给出了一个错误,因为我还没有在本地数据库中创建分支(分支-a) 尝试2:
branch-B$
git fetch`git remote show`&git checkout`git remote show`/branch-B folder-x
这是可行的,但总是尝试获取所有文件(从第一个) 在我的第二次尝试中,它总是尝试获取所有文件(可能会重置到分支B的头部)
有没有办法单独对该文件夹进行更新?您可以使用checkout命令
git checkout/--
假设在branch-A
中,您的folder-x
直接位于根目录下,并且该folder-x
承载file-x.txt
,则从远程源的branch-A
中仅拉入file-x.txt
的命令如下:
首先执行提取
git fetch
然后签出文件
git checkout origin/branch-A--folder-x/file-x.txt
如果要签出整个目录
git checkout origin/branch-A--folder-x
这是否回答了您的问题?请注意,分支并不重要。重要的是承诺。您可以使用分支名称访问提交,但无需使用分支名称即可访问提交。任何名称都可以,例如origin/branch-A
,原始散列ID也可以(运行git rev parse origin/branch-A
将名称转换为散列ID,但请注意,git restore
已经在内部为您实现了这一点)。您可以在第二次尝试中找到相同的名称。它可以工作,但问题是它总是试图获取所有文件(我的意思是,类似重置的东西),而不检查分支B中的文件是否已经存在,或者它是否为HEAD版本。我不确定为什么它对您不起作用。它只签出我在命令中指定的文件/目录。它不应该把所有的东西都拉进去。不,抱歉搞混了。比如说,在分支B中,有目录X、Y、Z。我正在单独为X进行签出。这是意料之中的事。但是X中有N个文件。它总是试图获取X下的所有文件,即使这些文件在分支A和分支B中是相同的。希望你。明白我的意思了。简单地说,如果X目录下的文件被更改,它应该会更新。否则什么也不做