是否可以切换git分支并取消跟踪文件而不是删除它?

时间:2015-05-28 23:24:32

标签: git

切换分支后,请将feature2改为feature1。对于不在feature2但在feature1中的每个文件,默认情况下,git会将feature2以后checkout以内的所有文件删除到分支中。是否可以取消删除文件而不是删除它。

我在分支机构之间切换。当我在另一个分支时,这些文件将被删除。我仍然需要这些文件才能运行我的应用。我在两个分支上都有gitignore这些文件,但是在分支的一侧,我强制跟踪它们。

2 个答案:

答案 0 :(得分:2)

您可以在稀疏模式下使用git checkout来下拉更改。

如果有一个或两个文件,请尝试

git checkout feature2 -- <filenames>

如果有大量文件,请尝试

git checkout feature2 -- .
git checkout feature1 -- .

第一个将 feature2 中的文件拉入您的工作目录,而第二个将 feature2 ALL 拉入您的工作目录,然后将 feature1 拉回到顶部,有效地合并两个分支的内容。

默认情况下,以这种方式签出的文件会添加到索引中。 (git status会将它们显示为准备提交)。

你应该git reset -- .取消它们。

答案 1 :(得分:-1)

您可以在使用git stash -u切换分支之前存储更改(-u也会存储未跟踪的文件)。 Stashing将撤消所有更改并将其存储在临时提交中,以后可以随时应用。

当您希望文件再次存在时,您可以运行git stash pop