Git 签出到另一个分支的主数据库会自动更新本地更改?



我有一个空的 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在评论中补充说:

现在我不小心签出到masterbranch.
然后而不是显示错误并询问提交或存储,为什么它会更新master分支中的文件(主分支中没有任何额外的提交)

如"切换分支时如何停止 git 自动更新?"中所述,您需要:

  • 在执行git checkout master之前提交(git commit -a -m "…"
  • )。
  • 或者git stash,如果你不想做一个"临时"提交.
    稍后,请git checkout new_branch && git stash pop检索你未提交的代码。

最新更新