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