2012-01-08 118 views
0

我想知道在git命令行上是否有方法從遠程repo複製分支歷史記錄。換句話說,我想將.git/logs目錄從遠程複製到我的.git/logs目錄 - 即使這意味着覆蓋我的日誌文件夾。git:複製遠程分支歷史(.git/logs文件夾)


編輯:

爲了進一步澄清,假設有一個名爲foo分支遠程叫origin,我希望能夠鍵入:

$ git rev-parse --verify [email protected]{2} 

我的電腦上,並有輸出與原點完全相同的東西。這不僅僅需要看git log

此外,某人可能會執行git update-ref foo foo^以撤銷提交,並且該歷史記錄僅保留在.git/logs文件夾中。

回答

1

歷史將複製與克隆。你所需要做的就是檢查分支並運行日誌。

示例 - 假設您的遠程存儲庫是origin和分支foo

您可以運行git checkout --track -b foo origin/foo檢出並跟蹤遠程分支

要得到歷史記錄,確保你是在分支foo運行git branch,現在鍵入

git log --pretty=format:"%h %ad | %s%d [%an]" --graph --date=short 

,你可以看到歷史的分支

$ git log --pretty=format:"%h %ad | %s%d [%an]" --graph --date=short 
* 075086d 2012-01-06 | Added for joyent (HEAD, origin/tableUpdate, tableUpdate) [xxx] 
* 8352180 2012-01-06 | Added package and loggging [xxx] 
* ed9300f 2011-12-26 | Added stylesheet [xxx] 
* e8b39fa 2011-12-26 | Increased templating, renamed div to meaningful names [xxx] 

如果我切換到master它會不同,運行git checkout master d git log --pretty=format:"%h %ad | %s%d [%an]" --graph --date=short,我得到

$ git log --pretty=format:"%h %ad | %s%d [%an]" --graph --date=short 
* 6402a2e 2012-01-08 | Added README (HEAD, origin/master, origin/HEAD, master) [xxx] 
* 292c57a 2012-01-08 | Removed port, this is autodetected [xxx] 
* e0ef362 2012-01-08 | Changed port to 8080 and document lookup is dynamic [xxx] 

最後,爲了防止手指重整或打字,長期日誌命令時脫落。你可以創建一個快捷方式,創建在主目錄中(假設的Unix)~/.gitconfig並添加行

[alias] 
    hist = log --pretty=format:\"%h %ad | %s%d [%an]\" --graph --date=short 

然後,您可以只運行git hist

+0

不幸的是,這並不完全做的一切,我希望,但它在大多數正常情況下都能獲得信息。看我的編輯我的問題。 – 2012-02-07 00:29:15