Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git:在分支签出/切换时对工作树应用一些(但不是全部)更改_Git - Fatal编程技术网

Git:在分支签出/切换时对工作树应用一些(但不是全部)更改

Git:在分支签出/切换时对工作树应用一些(但不是全部)更改,git,Git,是否可以告诉Git在分支切换/签出时将所有更改应用于工作树,除非更改构成文件删除 考虑一个Git回购,其中branchbranchA包含文件foo和bar,但branchB没有 在正常情况下,如果我在branchA上,当我git切换branchB或git签出branchB时,文件foo和bar将从我的工作树中删除 在本例中,切换分支后,我希望foo和bar在git status输出中列为“untracked”,同时保持工作树中的文件未被触及。所有其他更改(修改、重命名、添加)都应该像正常情况一样

是否可以告诉Git在分支切换/签出时将所有更改应用于工作树,除非更改构成文件删除

考虑一个Git回购,其中branch
branchA
包含文件
foo
bar
,但
branchB
没有

在正常情况下,如果我在
branchA
上,当我
git切换branchB
git签出branchB
时,文件
foo
bar
将从我的工作树中删除


在本例中,切换分支后,我希望
foo
bar
git status
输出中列为“untracked”,同时保持工作树中的文件未被触及。所有其他更改(修改、重命名、添加)都应该像正常情况一样应用于工作树。

在这种情况下,您需要做的是从branchA获取这些更改,因为正常的流命令会将它们删除

git checkout branchA -- foo bar
git reset foo bar

那太不幸了。至少可以用
diff--name status
编写脚本。这并不不幸。您要求git以一种特殊的方式运行(如果他们移动到没有这些文件的分支或修订版,谁通常希望看到他们所在的分支中的文件?)。。。。。而且这是可以做到的(正如我刚才所展示的),只是在签入
branchB
时不能直接做到。