我很困惑如何使用git中的分支来保存临时工作。
这是我尝试过的:
/tmp/gt > git init
Initialized empty Git repository in .git/
/tmp/gt > date > t
/tmp/gt > git add t
/tmp/gt > git commit -m 'initial'
Created initial commit b722fde: initial
1 files changed, 1 insertions(+), 0 deletions(-)
create mode 100644 t
现在我正在将这项工作保存到分支“b”。
/tmp/gt > git branch b
并继续在主分支中工作。
/tmp/gt > date >> t
/tmp/gt > cat t
Di 18 Aug 2009 08:52:43 CEST
Di 18 Aug 2009 08:53:13 CEST
令我惊讶的是:
/tmp/gt > git checkout b
M t
Switched to branch "b"
/tmp/gt > cat t
Di 18 Aug 2009 08:52:43 CEST
Di 18 Aug 2009 08:53:13 CEST
我预计在分支“b”中,文件“t”仍处于相同的状态 分支已创建(即仅包含一条日期线)。
我可以避免这种自动 merge 还是这是一些概念性问题?
感谢指导, 阿克塞尔。
最佳答案
理由是您未暂存的更改尚未出现在任何分支上。如果您的更改与您请求的分支切换不冲突,那么您可以将它们转移到新分支上。
如果您想准确地返回到分支 b,那么您需要通过提交挂起的更改、存储挂起的更改或重置挂起的更改然后更改分支来确保您拥有一个干净的工作树。
这种行为的原因是为了支持非常常见的工作流程:开始黑客攻击,意识到黑客应该在替代(或新)分支上,(创建并)检查分支,继续黑客攻击。
关于git 保存带有分支的快照,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1292248/