【问题标题】:How do I create a new Git branch from an old commit? [duplicate]如何从旧提交创建新的 Git 分支? [复制]
【发布时间】:2011-11-02 07:36:37
【问题描述】:

可能重复/最近/不太清楚的问题
Branch from a previous commit using Git

我有一个名为 jzbranch 的 Git 分支,并且有一个旧的提交 ID:a9c146a09505837ec03b

如何根据上面列出的信息创建一个新分支justin

【问题讨论】:

  • 这不是重复的 - 另一个问题涉及从特定 NUMBER 次提交中检索,而此问题使用 COMMIT ID。
  • 使用当前提交创建新分支,然后签出回原始分支,然后恢复到旧提交

标签: git branch commit


【解决方案1】:
git checkout -b NEW_BRANCH_NAME COMMIT_ID

这将创建一个名为“NEW_BRANCH_NAME”的新分支并检查它。

("check out" 表示"切换到分支")

git branch NEW_BRANCH_NAME COMMIT_ID

这只是创建新分支而不检查它。


in the comments many people seem to prefer doing this in two steps。以下是分两步执行此操作的方法:

git checkout COMMIT_ID
# you are now in the "detached head" state
git checkout -b NEW_BRANCH_NAME

【讨论】:

  • 值得注意的是,如果您使用git checkout <SHA1> 签出提交(因此您处于分离 HEAD),您可以创建一个分支在该提交中,只需使用 git branch <branchname>git checkout -b <branchname>(同一提交不需要 SHA1 参数)。
  • 只是想我会补充一点,当你不小心丢弃了一个存储时,这种技术也有效。
  • 如果你正在创建一个新分支供其他人使用,但还没有任何提交,你可以推送:git push --set-upstream origin justin
  • “检查”是什么意思??
  • @mesqueeb 我想这意味着切换到分支。第一个命令创建一个新分支并直接切换到它。第二个创建一个新分支而不直接切换到它,所以你仍然在旧分支上。
猜你喜欢
  • 2014-09-10
  • 2012-02-20
  • 2015-03-22
  • 2021-10-15
  • 1970-01-01
  • 2014-11-02
  • 1970-01-01
  • 2013-09-21
  • 2017-02-01
相关资源
最近更新 更多