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


当前回答

我使用了Git-Gui(随Git for Windows提供)。

在菜单栏上,打开分支菜单并选择创建。。。在“分支名称”部分中指定新分支的名称在StartRevision部分中选择RevisionExpression:并输入提交ID(我刚刚使用了VisualStudio中的8位ID,它起了作用)

其他回答

在Github repo上快速执行此操作的方法如下:

从分支机构查找特定提交在SHA id旁边,单击“浏览历史记录中此时的回购”在这里,您可以从此提交创建一个新分支

你可以在斯塔什做。

单击提交在屏幕右上方单击“标记此提交”然后,您可以从刚刚创建的标记创建新分支。

我可以这样做:

git branch new_branch_name `git log -n 1 --skip 3 --format=%H`

必须在其中输入跳过值。0是最新的,1是先前的,2是之前的提交,等等。

转到git存储库的特定提交

有时,在处理git存储库时,您希望返回到特定的提交(修订),以便在特定的时间获得项目的快照。要做到这一点,您需要提交的SHA-1哈希,您可以使用以下命令轻松查看日志:

git log --abbrev-commit --pretty=oneline

这将为您提供所有提交和SHA-1哈希的简短版本的紧凑列表。

现在您知道了要转到的提交的哈希值,可以使用以下2个命令之一:

git checkout HASH

or

git reset --hard HASH

结账

git checkout<commit><path>

告诉git将路径的当前状态替换为给定提交中的状态。路径可以是文件或目录。

如果没有给出分支,git将接受HEAD提交。

git checkout <path> // restores path from your last commit. It is a 'filesystem-undo'.

如果没有给定路径,git将HEAD移动到给定的提交(从而更改您正在进行的提交)。

git checkout branch //means switching branches.

重置

git reset <commit> //re-sets the current pointer to the given commit.

如果您在一个分支上(通常应该是),HEAD和这个分支将被移动到提交。

如果您处于分离HEAD状态,git reset只会移动HEAD。要重置分支,请首先检查它。

如果你想了解更多关于git重置和git结账的区别,我建议你阅读git官方博客。

使用Sourcetree|最简单的方法。

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