branch branch切換 - 使用Git從之前的提交中分支出來




remote list (9)

如果我有n次提交,我如何從n-3提交中分支?

我可以看到每個提交的散列。


Answers

在您的Github回購庫上做到這一點的快速方法如下:

  • 找到你的分支的具體提交
  • 在SHA ID旁邊,點擊'瀏覽歷史上此時的回購'
  • 在這裡你可以從這個提交中創建一個新的分支

在github.com上做到這一點:

  1. 去你的項目。
  2. 點擊“提交”。
  3. 點擊您要從中分支的提交<> (“瀏覽歷史中的此處的存儲庫”)。
  4. 點擊左上方的“tree:xxxxxx”。 在語言統計欄下方,您可以選擇“查找或創建分支”(只需在那裡輸入新的分支名稱)

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

如果您不確定要提前從哪個提交中分支出來,您可以檢查提交並檢查其代碼(請參閱源代碼,編譯,測試)

git checkout <sha1-of-commit>

一旦你發現了你想要從你的分支中提交的提交,你可以通過提交內容來完成這項工作(即不需要返回主服務器),只需通過以常規方式創建分支即可:

git checkout -b <branch_name>

在Eclipse中執行此操作:

  • 轉到“Git Repository Exploring”視圖。
  • 展開“標籤”並選擇您想要創建分支的提交。
  • 右鍵單擊提交並選擇“創建分支”。
  • 提供分支名稱。

它會為你創建一個本地分支。 然後,無論何時您推送您的更改,您的分支將被推送到遠程服務器。


您可以通過哈希創建分支:

git branch branchname <sha1-of-commit>

或者使用符號參考:

git branch branchname HEAD~3

我能夠這樣做:

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

你必須輸入跳過值。 0是最新的,1是前一個,2是之前的提交等等。


一個很好的相關問題是:如何使用git的--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.

我們正在某個地方!

現在,專注於這個gobbledegook的這一行:

git branch [--set-upstream | --track | --no-track] [-l] [-f] <branchname> [<start-point>]

對此凝結:

git branch <branchname> [<start-point>]

並做了。


我很驚訝沒有人提到交互模式:

git add -i

選擇選項3以取消添加文件。在我的情況下,我經常想要添加多個文件,使用交互模式,您可以使用這樣的數字來添加文件。這將採取除4:1,2,3,5之外的所有

要選擇一個序列,只需輸入1-5即可從1到5。

Git臨時文件





git branch git-branch