我有一个空的 git 存储库,首先我在其中创建一个内容为"pulkitsharma"的 hello.txt 文件。 在此之后,我将其添加到暂存中,然后在主分支中提交更改。然后我创建 另一个分支命名为"new_branch",并更新了 Hello.txt 的内容 "pulkitsharmapulkitsharma6569@gmail.com",并没有上演提交。现在在此之后,当我 结帐到主分支 hello.txt 的内容自动更新。 谁能说出来 我们为什么会发生这种情况,因为我认为在向主分支结帐期间应该有
一个错误。为什么 git 结帐管理器的输出是"M hello.txt Switched to branch 'master' "
git init
vi hello.txt
git add .
git commit -m "hello.txt added to master branch"
git checkout -b new_branch
vi hello.txt
git checkout master
git checkout
很清楚:
要准备处理
<branch>
,请通过更新工作树中的索引和文件并将 HEAD 指向分支来切换到它。保留对工作树中文件的本地修改,以便它们可以提交到
<branch>
。
因此,即使您切换回master
,您的本地修改(未暂存)到 hello.txt 仍然存在。
OP在评论中补充说:
现在我不小心签出到
master
branch.
然后而不是显示错误并询问提交或存储,为什么它会更新master
分支中的文件(主分支中没有任何额外的提交)
如"切换分支时如何停止 git 自动更新?"中所述,您需要:
- 在执行
git checkout master
之前提交(git commit -a -m "…"
)。 - 或者
git stash
,如果你不想做一个"临时"提交.
稍后,请git checkout new_branch && git stash pop
检索你未提交的代码。