2016-07-27 22 views
1

我們維護一個使用git的代碼庫。但有下列支數:如何使用提交號碼獲取代碼的快照,但在合併後忘記分支?

  1. release_branch_1
  2. release_branch_2

我們經常合併這三個支數。但一年後我們需要調查一個bug,我們可以找到git change number 941504fd85b0fede0675b1e934df1aa4763a0390

但接縫所有三個分支都包含此更改,並且我們忘記了我們構建二進制文件的哪個分支。

那麼有可能在那個時間點得到代碼的快照? {commit number}是唯一標識快照還是{branch + commit number}對唯一標識sanpshot?

+1

是941504fd85b0f一個提交ID?如果是的話,一個簡單的git結賬941504fd85b0f就足夠了 – VonC

回答

1

{commit number}唯一標識快照還是{branch + commit number}雙唯一標識快照?

前者:獲得在犯下數的快照,只需checkout您在回購犯下:

git checkout 941504fd85b0fede0675b1e934df1aa4763a0390 

分行可以進化,更名或刪除,但提交是不可變的。


如果你的錯誤調查導致你做出一些承諾,最好是結賬,與相關的分支提交,如hlovdal評論below

git checkout -b my_snapshot 941504fd85b0fede0675b1e934df1aa4763a0390 

或者,如果你已經簽出直接提交(並在一個分離的HEAD中):

git branch my_snapshot 941504fd85b0fede0675b1e934df1aa4763a0390 
+0

因此,任何文件來解釋git合併變化時如何工作?我認爲「提交號碼」只是唯一標識差異而不是快照。 – ZijingWu

+0

@紫荊武主要是https://git-scm.com/book/en/v2/Git-Branching-Basic-Branching-and-Merging – VonC

+0

而且由於分支機構在git中的成本爲零,所以也可以使用'git分支my_snapshot 941504fd85b0fede0675b1e934df1aa4763a0390'。 – hlovdal

相關問題