git 保存带有分支的快照

标签 git

我很困惑如何使用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/

相关文章:

git - 我怎样才能从 git 中删除分离的提交?

git - Jenkins MultiBranch - 从管道文件 (Jenkinsfile) 中引用 git repo 的标签

git - vim cd'ing 到 git root

git - 我可以在另一台机器上使用我的 ssh key 对吗

git - 更改 GIT 中的所有提交日期

git - 带有 Git 的 Visual Studio 2019 - "Undo Changes"并不总是有效

java - 如何将java文件推送和 pull 入git

git - PyCharm/GitHub : Managing the directories of multiple repositories for the same project

git - 如何在三重存储之上设置版本控制

Git说本地分支在远程分支后面,但事实并非如此