我的问题是:
我正在使用分支主机的新功能,因为我忘了创建分支。
现在,我创建了分支e use:
git stash
git checkout new_branch;
git stash apply
但是,当我回到master
分支时,取消提交和未跟踪文件会留在master
。
为什么?
正确的是add
个文件并在新分支中提交,或者我可以保持这种不受干扰/未跟踪?
答案 0 :(得分:6)
未提交/未跟踪的文件在任何分支中不。他们没有跟踪。你所看到的是git
努力不破坏工作目录中无法恢复的任何内容。因此,当你切换分支时,它根本不对未跟踪的文件做任何事情 - 它只是将它们留在那里。它们仍将在新分支中显示为未跟踪,就像它们在旧分支中一样。
需要注意的是,从特定文件未跟踪的分支切换到跟踪该文件的分支,并且工作目录中的文件版本与要检出的文件的版本不匹配。在这种情况下,git
会对你大喊大叫并拒绝检查新分支,因为检出该文件会丢失您的数据。如果你真的想,你可以用git checkout -f
覆盖它。如果您从跟踪文件的分支切换,但您已经进行了尚未提交的更改,并且新分支不跟踪该文件,则会出现类似情况。
答案 1 :(得分:2)
原始海报说:
正确的是
add
个文件并在新分支中提交,或者我可以保持这种不受干扰/未跟踪?
简短的回答是,是的,您必须将未跟踪的文件添加并提交到分支以将它们隔离到该分支:
git add <file>
git commit