2

我的问题是:

我在分支 master上使用新功能,因为我忘记创建分支。

现在,我创建了分支 e 使用:

git stash
git checkout new_branch;
git stash apply

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

为什么?

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

4

2 回答 2

8

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

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

于 2013-08-22T14:32:02.313 回答
2

原海报说:

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

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

git add <file>
git commit
于 2013-08-22T14:43:43.893 回答