【问题标题】:Commit then checkout another branch in git carries old commit?提交然后签出 git 中的另一个分支进行旧提交?
【发布时间】:2013-12-30 08:58:17
【问题描述】:

如果我在分支b-one 上运行git commit -m "init commit",然后运行git checkout -b b-two,提交是否会传递到新分支?更一般地说,提交分支是特定的吗?或者当您提交时,您是否只是在本地机器上提交并且可以从任何分支访问该提交?

【问题讨论】:

标签: git git-commit git-checkout


【解决方案1】:
  1. 提交是否携带到新分支?是的,但前提是它是一个新分支。其他现有分支不会在其历史日志中包含您的提交。

git checkout 命令可让您在 git branch 创建的分支之间导航。签出一个分支会更新工作目录中的文件以匹配存储在该分支中的版本,并告诉 Git 记录该分支上的所有新提交。将其视为一种选择您正在从事哪条开发线的方式。

  1. 更一般地说,提交是特定于分支的吗?不,历史是共享的。
  2. 或者当你提交时,你只是在本地机器上提交?是的,在推送之前,没有其他人知道您的提交。
  3. 可以从任何分支访问该提交吗?不,“访问”是什么意思?如果您的意思是提交历史记录或更改的代码,那么只有在您提交的更改的分支上创建的分支才会有您的提交历史记录。

使用未提交的更改切换分支时会更有趣:请阅读 http://www.gitguys.com/topics/switching-branches-without-committing/

【讨论】:

  • 实际上,它确实 携带到新分支
  • 我相信 OP (@oroscioli) 正在询问您是否可以使用属于来自不同分支的提交的更改。答案是:是的,你可以。请参阅cherry-pick 命令。我发现记住,在一天结束时,分支是组织一系列提交的便利(即它们不一定将您锁定在开发流中),这很有帮助。
猜你喜欢
  • 1970-01-01
  • 2017-12-19
  • 1970-01-01
  • 2012-08-31
  • 1970-01-01
  • 1970-01-01
  • 2021-11-06
  • 1970-01-01
  • 2016-06-04
相关资源
最近更新 更多