切换分支后,请将feature2
改为feature1
。对于不在feature2
但在feature1
中的每个文件,默认情况下,git会将feature2
以后checkout
以内的所有文件删除到分支中。是否可以取消删除文件而不是删除它。
我在分支机构之间切换。当我在另一个分支时,这些文件将被删除。我仍然需要这些文件才能运行我的应用。我在两个分支上都有gitignore这些文件,但是在分支的一侧,我强制跟踪它们。
答案 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