【发布时间】:2021-12-07 00:04:26
【问题描述】:
我有一个空的 git repo,首先我创建了一个内容为“pulkitsharma”的 hello.txt 文件。
在此之后,我将其添加到 staging 中,然后在 master 分支中提交了更改。然后我创建
另一个名为“new_branch”的分支并更新了 hello.txt 的内容
“pulkitsharma\npulkitsharma6569@gmail.com”并没有上演提交。现在,当我
结帐到 master 分支 hello.txt 的内容会自动更新。谁能告诉
我们为什么会发生这种情况,因为我认为在结帐到主分支时应该有
一个错误。为什么 git checkout master 的输出是
"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 reset HEAD^撤消它 -
在你做任何永久性的事情之前总是运行
git status。 (从技术上讲,提交只是半-永久的,所以即使你搞砸了也没关系。只是修复错误比避免需要更多的工作i> 首先是错误)。许多人发现将环境设置为不断显示(部分)git status输出很有帮助。 -
要在 Unix 风格的 shell 中获得这种恒定状态显示,请寻找可以为该特定 shell 做到这一点的东西。例如,Bash 和 zsh 具有执行此操作的“样式”选项。
标签: git git-merge git-branch git-commit git-checkout