[英]Go to particular revision
我克隆了某個項目的 git 倉庫。 我可以將文件轉換為初始 state 並在我查看文件 go 時將其轉換為修訂版 2、3、4...最新嗎? 我想大致了解一下該項目的進展情況。
在執行此命令之前,請記住它會使您處於分離頭狀態
使用git checkout <sha1>
來簽出特定的提交。
其中<sha1>
是您可以使用git log
獲取的提交唯一編號
以下是處於分離頭狀態后的一些選項:
git checkout <existingBranch>
並替換文件git checkout -b <new_branch_name> <sha1>
到 go 到特定版本/提交運行以下命令。 HASH-CODE 你可以從git log --oneline -n 10
得到
git reset --hard HASH-CODE
注意- 在重置為特定版本/提交后,如果你想恢復所有被丟棄的提交,你可以運行git pull --rebase
。
您可以使用gitk
等工具獲得項目歷史的圖形視圖。 趕緊跑:
gitk --all
如果你想簽出一個特定的分支:
git checkout <branch name>
對於特定的提交,使用 SHA1 hash 而不是分支名稱。 (請參閱Git Community Book中的 Treeishes,這是一本很好的讀物,可以查看用於導航樹的其他選項。)
git log
也有一整套選項來顯示詳細或摘要歷史記錄。
我不知道在提交歷史中前進的簡單方法。 具有線性歷史的項目可能並不常見。 像 SVN 或 CVS 那樣的“修訂”的想法在 Git 中並不是那么好。
使用提交的 SHA1 密鑰,您可以執行以下操作:
首先,找到您想要的特定文件的提交:
git log -n <# commits> <file-name>
這基於您的<# commits>
,將生成特定文件的提交列表。
提示:如果您不確定要查找的提交是什么,使用以下命令是一個很好的查找方式: git diff <commit-SHA1>..HEAD <file-name>
。 此命令將顯示當前版本的提交與特定文件的先前版本的提交之間的差異。
注意:提交的 SHA1 密鑰在git log -n
的列表中被格式化為:
提交
<SHA1 id>
其次,簽出所需的版本:
如果您找到了所需的提交/版本,只需使用以下命令: git checkout <desired-SHA1> <file-name>
這會將您指定的文件版本放置在暫存區中。 要將其移出暫存區,只需使用以下命令: reset HEAD <file-name>
要恢復到遠程存儲庫指向的位置,只需使用以下命令: git checkout HEAD <file-name>
要獲取特定的提交代碼,您需要該提交的 hash 代碼。 您可以通過兩種方式獲取 hash 代碼:
git log
並檢查您最近在該分支上的提交。 它將顯示您提交的 hash 代碼以及您在提交代碼時留下的消息。 只需復制然后執行git checkout commit_hash_code
移動到該代碼后,如果您想對其進行處理並進行更改,您應該使用git checkout -b <new-branch-name>
創建另一個分支,否則,更改將不會保留。
我當時的情況是我們有一個主分支,然后是另一個名為 17.0 的分支,在這個 17.0 中有一個提交 hash no say "XYZ" 。 並為客戶提供直到該 XYZ 修訂版的構建。 現在我們遇到了一個錯誤,需要為該客戶解決。 所以我們需要為那個客戶創建單獨的分支,直到那個“xyz”hash。所以我是這樣做的。
首先,我在本地計算機上創建了一個具有該客戶名稱的文件夾。 創建該文件夾后,假設客戶名稱為“AAA”,在此文件夾內發出以下命令:
一種方法是創建對補丁所做的所有提交。 檢查初始提交,然后在閱讀后按順序應用補丁。
使用git format-patch <initial revision>
然后git checkout <initial revision>
。 你應該在你的導演中得到一堆文件,這些文件以四位數字開頭,它們是補丁。
當你讀完你的修訂后,只需執行git apply <filename>
,它應該看起來像git apply 0001-*
並計數。
但我真的很想知道為什么你不想直接閱讀補丁本身? 請將此張貼在您的評論中,因為我很好奇。
git 手冊也給了我這個:
git show next~10:Documentation/README
顯示文件 Documentation/README 的內容,因為它們在下一個分支的最后 10 次提交中是當前的。
您還可以查看git blame filename
,它為您提供了一個列表,其中每一行都與提交 hash + 作者相關聯。
我克隆了某個項目的 git 存儲庫。 我可以將文件轉為初始狀態,並在我查看文件時轉到修訂版 2、3、4...最新版本嗎? 我想大致了解該項目的發展情況。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.