我已经使用 Git 几个月了。我终于掌握了提交更改并将更改推送到远程的窍门,但我不清楚分支中的文件会发生什么。它们没有按照我期望的方式工作。
假设我有文件index.html
。如果我执行以下步骤,我希望有一个完全空白的index.html
文件,但事实并非如此。
- 在
master
分行工作 - 创建新的分支
test
- 结帐
test
- 开放式
index.html
- 将"测试"添加到文件
- 关闭文件
- 再次
master
分行结账 - 删除分支
test
如果我打开index.html
,该test
仍在我的文件中。我希望,由于我从未提交对文件的更改,也没有将test
分支合并到master
分支中,因此我的index.html
文件应该恢复到创建test
分支之前的状态。
我一定是想错了。有人可以开导我吗?
切换分支时 git 的行为是保持修改后的文件不变。 这样可以轻松切换到分支并将更改提交到目标分支。 从文档中
保留对工作树中文件的本地修改,以便可以将它们提交到 .(链接)
如果您想将工作区置于主控服务器的当前状态,则可以在签出主控后执行以下操作
git reset --hard
index.html"将在您使用git reset --hard MASTER
或git checkout --force
重置本地更改时恢复。这些操作实际上修改了工作树。
否则,将保留工作树中的更改。
看看这个问题,进入"HEAD"、"工作树"等术语: Git 中的 HEAD/工作树/索引之间的区别