繁体   English   中英

使用 Git 从先前的提交分支

[英]Branch from a previous commit using Git

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

您可以通过哈希创建分支:

git branch branchname <sha1-of-commit>

要在 github.com 上执行此操作:

  1. 转到您的项目。
  2. 点击“提交”。
  3. 单击要从中分支的提交上的<> (“浏览历史记录中的存储库”)。
  4. 点击左上角的“树:xxxxxx”。 在语言统计栏下方,您将获得“查找或创建分支”选项(只需在此处输入新的分支名称)从先前的提交分支

魔术可以通过git reset<\/strong>来完成。

  1. 创建一个新分支并切换到它(所以你所有的最新提交都存储在这里)

  2. 切换回之前的工作分支(假设它是主分支)

  3. 删除最新的 x 提交,保持 master 干净

    从这一刻起,所有最新的 x 提交都只在新分支中,不再在您之前的工作分支(master)中。

    "

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

git checkout <sha1-of-commit>

只需运行:

git checkout -b branch-name <commit>

例如 :

git checkout -b import/january-2019 1d0fa4fa9ea961182114b63976482e634a8067b8

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

git checkout -b <branch-name> <sha1-of-commit>

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

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

一个很好的相关问题是:你到底是如何使用 git 的--help<\/code>选项来解决这个问题的? 让我们试试这个:

git branch --help

在您的 Github 存储库上执行此操作的快速方法如下:

  • 从您的分支中查找特定的提交
  • 在 SHA id 旁边,单击“浏览历史记录中此时的存储库”
  • 在这里,您可以从此提交创建一个新分支在此处输入图像描述

使用Sourcetree | 最简单的方法。

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

在此处输入图像描述

这就是我所做的:

C:\Users\[path]\build>git checkout -b responsivenavigation 8a75b001096536b3216022484af3026aa9c7bb5b
Switched to a new branch 'responsivenavigation'

C:\Users\jaimemontoya\[path]\app>git branch
  master
* responsivenavigation

要在 Eclipse 中执行此操作:

  • 转到“Git 存储库探索”透视图。<\/li>
  • 展开“标签”并选择要从中创建分支的提交。<\/li>
  • 右键单击提交并选择“创建分支”。<\/li>
  • 提供分支名称。<\/li><\/ul>

    它将为您创建一个本地分支。 然后,每当您推送更改时,您的分支都会被推送到远程服务器。

    "

我能够这样做:

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

您可以在 Stash 中执行此操作。

  1. 点击提交<\/li>
  2. 在屏幕的右上角单击“标记此提交”<\/li>
  3. 然后,您可以从刚刚创建的标签创建新分支。<\/li><\/ol>"

转到 git 存储库的特定提交<\/em><\/strong>

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

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

在Visual Studio 2015和2017中执行可接受的答案:

点击更改

点击更改(上方红色箭头)

单击操作以查看历史记录

单击“操作”(上方的红色箭头),然后单击“下拉菜单”上的“查看历史记录”

新的标签页将打开:

历史记录标签

并且您应该右键单击您希望代码还原为的上一个提交: 右键单击上一次提交

选择签出一个新的分支,瞧瞧!

下面,虽然不是OP问题的一部分,但是我做了很多事情,而且这是一个技巧步骤,至少对我来说是这样:如果您想还原到先前的提交,而不签出新的分支,请不要选择revert(! ?); 您应该选择重新定义--mixed或--hard:

右键单击上一个提交并重新定义

我使用了 Git Gui (Windows 自带的 GIT)。

  1. 在菜单栏上,打开分支菜单和 select创建...
  2. 分支名称部分指定新分支的名称
  3. Select修订表达式:在“开始修订”部分并输入提交 ID(我只是使用 Visual Studio 中的 8 位 ID 并且它有效)

创建新分支对话框窗口

使用 GitHub 桌面,显示历史记录窗格并右键单击所需的提交,然后选择菜单项“从提交创建分支”。

使用源树 [当前使用的版本:3.1.3]

  1. 在源代码树中打开历史记录

在源代码树中查找历史记录

  1. 它将列出主 window 中的所有提交
  2. 右键单击所需的提交,然后单击Branch...选项。
  3. 为新的 window 中的分支命名,然后单击Create branch
  4. 新分支(系统本地)将与其他现有分支一起出现在左侧,您可以将其推送到源以将其发送到存储库,这样它就可供其他用户使用。

如果您使用非常简单的源代码树。

  • 右键单击需要创建新分支的提交<\/li>
  • 点击“分支”<\/li>
  • 在出现的对话框中输入新分支的名称,然后单击“创建分支”<\/li><\/ul>"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM