如何在特定分支中保留未经修改和未跟踪的文件?

时间:2013-08-22 13:02:15

标签: git

我的问题是:

我正在使用分支主机的新功能,因为我忘了创建分支。

现在,我创建了分支e use:

git stash
git checkout new_branch;
git stash apply

但是,当我回到master分支时,取消提交和未跟踪文件会留在master

为什么?

正确的是add个文件并在新分支中提交,或者我可以保持这种不受干扰/未跟踪?

2 个答案:

答案 0 :(得分:6)

未提交/未跟踪的文件在任何分支中。他们没有跟踪。你所看到的是git努力不破坏工作目录中无法恢复的任何内容。因此,当你切换分支时,它根本不对未跟踪的文件做任何事情 - 它只是将它们留在那里。它们仍将在新分支中显示为未跟踪,就像它们在旧分支中一样。

需要注意的是,从特定文件未跟踪的分支切换到跟踪该文件的分支,并且工作目录中的文件版本与要检出的文件的版本不匹配。在这种情况下,git会对你大喊大叫并拒绝检查新分支,因为检出该文件会丢失您的数据。如果你真的想,你可以用git checkout -f覆盖它。如果您从跟踪文件的分支切换,但您已经进行了尚未提交的更改,并且新分支不跟踪该文件,则会出现类似情况。

答案 1 :(得分:2)

原始海报说:

  

正确的是add个文件并在新分支中提交,或者我可以保持这种不受干扰/未跟踪?

简短的回答是,是的,您必须将未跟踪的文件添加并提交到分支以将它们隔离到该分支

git add <file>
git commit