如何从旧提交创建新的 Git 分支? [复制]
Posted
技术标签:
【中文标题】如何从旧提交创建新的 Git 分支? [复制]【英文标题】:How do I create a new Git branch from an old commit? [duplicate] 【发布时间】:2011-11-02 07:36:37 【问题描述】:可能重复/最近/不太清楚的问题 Branch from a previous commit using Git
我有一个名为 jzbranch
的 Git 分支,并且有一个旧的提交 ID:a9c146a09505837ec03b
。
如何根据上面列出的信息创建一个新分支justin
?
【问题讨论】:
这不是重复的 - 另一个问题涉及从特定 NUMBER 次提交中检索,而此问题使用 COMMIT ID。 使用当前提交创建新分支,然后签出回原始分支,然后恢复到旧提交 【参考方案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 我想这意味着切换到分支。第一个命令创建一个新分支并直接切换到它。第二个创建一个新分支而不直接切换到它,所以你仍然在旧分支上。以上是关于如何从旧提交创建新的 Git 分支? [复制]的主要内容,如果未能解决你的问题,请参考以下文章