如果我有N个提交,我如何从N-3个提交分支?


当前回答

这将使用一个命令创建分支:

git push origin <sha1-of-commit>:refs/heads/<branch-name>

我更喜欢这种方式,因为它会立即创建分支(之后不需要额外的push命令)。

其他回答

只需运行:

git checkout -b branch-name <commit>

例如:

git checkout -b import/january-2019 1d0fa4fa9ea961182114b63976482e634a8067b8

带有参数-b的checkout命令将创建一个新分支,并将您切换到该分支

如果您不确定要提前从哪个提交分支,可以检查提交并检查其代码(参见源代码、编译、测试)

git checkout <sha1-of-commit>

一旦找到了要从中分支的提交,就可以在提交中(即,不必先返回到主提交),只需按通常的方式创建一个分支:

git checkout -b <branch_name>

对于GitGUI用户,您可以可视化所有历史记录(如果需要),然后右键单击要分支的提交并输入分支名称。

使用提交哈希创建分支:

git branch branch_name <commit-hash>

或使用符号引用:

git branch branch_name HEAD~3

要在创建分支时签出分支,请使用:

git checkout -b branch_name <commit-hash or HEAD~3>

使用Sourcetree|最简单的方法。

首先,签出要进行特定提交以创建新分支的分支。然后查看工具栏,选择Repository>Branch。。。快捷方式是Command+Shift+B。然后选择要执行的特定提交。并给出一个新的分支名称,然后创建一个分支!