如果我有N提交,我如何从N-3提交分支?
N
N-3
p1tboqfb1#
在您的Github回购上执行此操作的快捷方法如下:
6yoyoihd2#
如果你使用源树,那就相当简单了。
whlutmcx3#
1.在源树中打开[历史记录]
1.它将在主窗口中列出所有提交1.右键单击所需的提交,然后单击Branch...选项。1.在新窗口中为分支指定名称,然后单击Create branch。1.新的分支(您的系统本地)将与其他现有分支一起出现在左侧,您可以将其推送到原始位置以将其传递到存储库,这样其他用户就可以使用它。
Branch...
Create branch
6rqinv9w4#
使用GitHub Desktop,显示历史记录窗格并右击所需的提交,然后选择菜单项“Create Band From Commit”。
cbjzeqam5#
我使用的是Git Gui(它随Git for Windows一起提供)。
1.在菜单栏上,打开[分支]菜单,选择[创建...]1.在[分支机构名称]部分指定新分支机构的名称1.在开始修订部分选择修订表达式:,并输入提交ID(我刚刚使用了来自Visual Studio的8位ID,它起作用了)
lxkprmvk6#
如果您正在寻找基于命令行的解决方案,您可以忽略我的回答。我建议您使用GitKraken。这是一款非凡的Git用户界面客户端。它在主页上显示Git树。你可以只看着他们,就知道这个项目是怎么回事。只需选择一个特定的提交,右击它并选择选项“在这里创建分支”。它会给出一个文本框来输入分支机构名称。输入分行名称,选择‘OK’,您就设置好了。它真的非常容易使用。
cclgggtu7#
对于Git GUI用户,您可以可视化所有历史记录(如果需要),然后右键单击您想要分支的提交,并输入分支名称。
lvjbypge8#
有时,在处理GIT存储库时,您希望返回到特定的提交(修订),以便在特定时间拥有项目的快照。要做到这一点,您需要的是提交的SHA-1散列,您可以很容易地使用以下命令检查日志:
git log --abbrev-commit --pretty=oneline
这将为您提供所有提交的精简列表和SHA-1散列的简短版本。
现在您知道了要转到的提交的散列,您可以使用以下两个命令之一:
git checkout HASH
或
git reset --hard HASH
git checkout <commit> <paths>
告诉git将路径的当前状态替换为它们在给定提交中的状态。路径可以是文件或目录。
如果没有给出分支,则git假定头提交。
git checkout <path> // restores path from your last commit. It is a 'filesystem-undo'.
如果没有给出路径,git会将HEAD移动到给定的提交(从而更改您正在处理的提交)。
HEAD
git checkout branch //means switching branches.
git reset <commit> //re-sets the current pointer to the given commit.
如果您位于分支(通常应该是分支)上,则HEAD和此分支将移动到提交。
如果您处于分离的HEAD状态,Git Reset仅移动HEAD。要重置分支,请先将其 checkout 。
如果你想更多地了解git重置和git结账之间的区别,我建议你阅读the official git blog。
mi7gmzs69#
我可以这样做:
git branch new_branch_name `git log -n 1 --skip 3 --format=%H`
您必须在其中输入跳过值。0是最新的,1是前一次,2是之前的提交,依此类推。
wooyq4lh10#
你可以藏起来做这件事。
1.点击提交1.在屏幕右上角,单击“标记此提交”1.然后可以从刚刚创建的标签创建新的分支。
eh57zj3b11#
要在Eclipse中执行此操作,请执行以下操作:
它将为您创建一个本地分支机构。然后,每当您推送更改时,您的分支都会被推送到远程服务器。
fae0ux8s12#
使用提交散列创建分支:
git branch branch_name <commit-hash>
或使用符号引用:
git branch branch_name HEAD~3
要在创建分支时将其 checkout ,请使用:
git checkout -b branch_name <commit-hash or HEAD~3>
drkbr07n13#
一个非常相关的问题是:你到底是如何使用git的--help选项来解决这个问题的?让我们试试这个:
--help
git branch --help
我们可以看到以下输出:
NAME git-branch - List, create, or delete branches SYNOPSIS git branch [--color[=<when>] | --no-color] [-r | -a] [--list] [-v [--abbrev=<length> | --no-abbrev]] [--column[=<options>] | --no-column] [(--merged | --no-merged | --contains) [<commit>]] [--sort=<key>] [--points-at <object>] [<pattern>...] git branch [--set-upstream | --track | --no-track] [-l] [-f] <branchname> [<start-point>] git branch (--set-upstream-to=<upstream> | -u <upstream>) [<branchname>] git branch --unset-upstream [<branchname>] git branch (-m | -M) [<oldbranch>] <newbranch> git branch (-d | -D) [-r] <branchname>... git branch --edit-description [<branchname>]
胡说八道。
在随后的文本中搜索“Commit”一词。我们发现这一点:
<start-point> The new branch head will point to this commit. It may be given as a branch name, a commit-id, or a tag. If this option is omitted, the current HEAD will be used instead.
我们有进展了!
现在,把注意力集中在这一行上:
git branch [--set-upstream | --track | --no-track] [-l] [-f] <branchname> [<start-point>]
简而言之,就是:
git branch <branchname> [<start-point>]
完事了。
lvmkulzt14#
这就是我所做的:
C:Users[path]build>git checkout -b responsivenavigation 8a75b001096536b3216022484af3026aa9c7bb5b Switched to a new branch 'responsivenavigation' C:Usersjaimemontoya[path]app>git branch master * responsivenavigation
在本例中,8a75b001096536b3216022484af3026aa9c7bb5b是属于master分支的旧提交。
8a75b001096536b3216022484af3026aa9c7bb5b
master
b4wnujal15#
使用Sourcetree|最简单的方式。
21条答案
按热度按时间p1tboqfb1#
在您的Github回购上执行此操作的快捷方法如下:
6yoyoihd2#
如果你使用源树,那就相当简单了。
whlutmcx3#
使用源树[当前使用的版本:3.1.3]
1.在源树中打开[历史记录]
1.它将在主窗口中列出所有提交
1.右键单击所需的提交,然后单击
Branch...
选项。1.在新窗口中为分支指定名称,然后单击
Create branch
。1.新的分支(您的系统本地)将与其他现有分支一起出现在左侧,您可以将其推送到原始位置以将其传递到存储库,这样其他用户就可以使用它。
6rqinv9w4#
使用GitHub Desktop,显示历史记录窗格并右击所需的提交,然后选择菜单项“Create Band From Commit”。
cbjzeqam5#
我使用的是Git Gui(它随Git for Windows一起提供)。
1.在菜单栏上,打开[分支]菜单,选择[创建...]
1.在[分支机构名称]部分指定新分支机构的名称
1.在开始修订部分选择修订表达式:,并输入提交ID(我刚刚使用了来自Visual Studio的8位ID,它起作用了)
lxkprmvk6#
如果您正在寻找基于命令行的解决方案,您可以忽略我的回答。我建议您使用GitKraken。这是一款非凡的Git用户界面客户端。它在主页上显示Git树。你可以只看着他们,就知道这个项目是怎么回事。只需选择一个特定的提交,右击它并选择选项“在这里创建分支”。它会给出一个文本框来输入分支机构名称。输入分行名称,选择‘OK’,您就设置好了。它真的非常容易使用。
cclgggtu7#
对于Git GUI用户,您可以可视化所有历史记录(如果需要),然后右键单击您想要分支的提交,并输入分支名称。
lvjbypge8#
有时,在处理GIT存储库时,您希望返回到特定的提交(修订),以便在特定时间拥有项目的快照。要做到这一点,您需要的是提交的SHA-1散列,您可以很容易地使用以下命令检查日志:
这将为您提供所有提交的精简列表和SHA-1散列的简短版本。
现在您知道了要转到的提交的散列,您可以使用以下两个命令之一:
或
git checkout <commit> <paths>
告诉git将路径的当前状态替换为它们在给定提交中的状态。路径可以是文件或目录。
如果没有给出分支,则git假定头提交。
如果没有给出路径,git会将
HEAD
移动到给定的提交(从而更改您正在处理的提交)。如果您位于分支(通常应该是分支)上,则
HEAD
和此分支将移动到提交。如果您处于分离的
HEAD
状态,Git Reset仅移动HEAD
。要重置分支,请先将其 checkout 。如果你想更多地了解git重置和git结账之间的区别,我建议你阅读the official git blog。
mi7gmzs69#
我可以这样做:
您必须在其中输入跳过值。0是最新的,1是前一次,2是之前的提交,依此类推。
wooyq4lh10#
你可以藏起来做这件事。
1.点击提交
1.在屏幕右上角,单击“标记此提交”
1.然后可以从刚刚创建的标签创建新的分支。
eh57zj3b11#
要在Eclipse中执行此操作,请执行以下操作:
它将为您创建一个本地分支机构。然后,每当您推送更改时,您的分支都会被推送到远程服务器。
fae0ux8s12#
使用提交散列创建分支:
或使用符号引用:
要在创建分支时将其 checkout ,请使用:
drkbr07n13#
一个非常相关的问题是:你到底是如何使用git的
--help
选项来解决这个问题的?让我们试试这个:我们可以看到以下输出:
胡说八道。
在随后的文本中搜索“Commit”一词。我们发现这一点:
我们有进展了!
现在,把注意力集中在这一行上:
简而言之,就是:
完事了。
lvmkulzt14#
这就是我所做的:
在本例中,
8a75b001096536b3216022484af3026aa9c7bb5b
是属于master
分支的旧提交。b4wnujal15#
使用Sourcetree|最简单的方式。