如果我有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。然后选择要执行的特定提交。并给出一个新的分支名称,然后创建一个分支!
推荐文章
- Bower: ENOGIT Git未安装或不在PATH中
- Bitbucket上的Git:总是要求密码,即使上传了我的公共SSH密钥
- Git别名-多个命令和参数
- 如何添加一个“打开git-bash这里…”上下文菜单到windows资源管理器?
- 是否可以在Git中只提取一个文件?
- 当我做“git diff”的时候,我怎么能得到一个并排的diff ?
- 在git中如何将提交移动到暂存区?
- 如何缩小。git文件夹
- 如何在本地删除分支?
- 找到包含特定提交的合并提交
- Windows上Git文件的权限
- 如何从一个枝头摘到另一个枝头
- 如何获得在两次Git提交之间更改的所有文件的列表?
- 什么是跟踪分支?
- 如何在不稳定的连接上完成一个大项目的git克隆?