任何人都可以告訴我如何克隆第一次提交?我不想刪除最近的提交,只需製作初始狀態的克隆副本,以便我可以獲取一些文件。Git:如何克隆第一次提交?
回答
要回答我想你的意思是問這樣的問題:
你可以得到你的整個倉庫進的狀態首先與承諾:
git checkout <commit SHA1>
大功告成瞎搞後,可以做git checkout master
回到原來的位置。
而且你可以從第一個獲得單獨的文件到他們的狀態與承諾:
git checkout <commit SHA1> <file or directory> ...
同樣,大功告成後,你可以做git checkout master <file or directory>
要回原來的位置。
有沒有必要「克隆」一個提交(我認爲你的意思是克隆存儲庫,並檢查第一次提交?)。當然,如果由於某種原因你無法忍受修改倉庫中的任何文件(例如,不想讓你的版本過時),你當然可以克隆它,然後在克隆的回購中做同樣的事情。
我認爲你所需要做的就是從你想要的原始提交中創建一個新的分支,檢查出來,然後合併回你正在工作的分支的頭部。
如果abcxyz ......是的,你要和你的主分支工作提交SHA1,這通常是你想要做什麼:
git branch oldskool abcxyz... # creates a new branch called oldskool from the commit
git checkout oldskool
#make changes
git rebase master #bring the oldskool branch up to the HEAD of the master branch (shouldn't overwrite the changes in the files you edited)
git checkout master
git merge oldskool
你正在創建master的祖先,所以rebase只是快速轉發它,然後合併是一個no-op。沒有改變主人。如果你跳過rebase,合併也將是一個快進,並且再次,不改變主人。 – Cascabel 2010-06-22 15:00:51
我覺得我要做同樣的事。檢出初始提交,並從那裏分支。我不確定接受的答案。但我想它可以(部分)滿足原始問題。閱讀此線程後,我無論如何都與一些的bash腳本四處
git log --pretty=oneline master | tail -1
我猜我希望會有一些這方面的commit-或樹十歲上下的參考。
因此,你可以檢出先用下面的命令提交:
git checkout `git log --pretty=oneline | tail -1 | sed 's/ .*$//'`
2017年更新:由於'12(GIT 1.8.1),我們有一個更好的選擇:git rev-list。請參閱此處的其他答案或KyleMit at superuser以獲得更好的腳本編寫方法。
如果您使用'git rev-list --all'而不是'git log --pretty = oneline master',那麼您不必解析提交消息,因爲它只返回shas。看到我的回答[使用git,我該如何回到第一次提交](http://superuser.com/a/773366/180163) – KyleMit 2014-06-25 15:54:50
如果通過「第一次提交」,你的意思是沒有任何父母本身的分支的父提交,那麼你想使用git-rev-list來做到這一點。只需使用
git rev-list --max-parents=0 HEAD
這將讓你的「初始提交」當前HEAD。如果列出,或使用其他任何子版本規範,請使用主文件。包裹在$(...)
爲了使用表達式中的,如:
git checkout $(git rev-list --max-parents=0 HEAD)
謝謝,這是覆蓋一般情況沒有中間複製/粘貼步驟。 – 2014-03-23 17:00:11
謝謝修復傑西! – 2014-03-31 20:46:06
- 1. 我如何git rebase第一次提交?
- 2. 查詢最後一次提交的git倉庫沒有克隆
- 3. git提交後,覆蓋克隆版本
- 4. 本地保留提交克隆Git
- 5. 第一次提交Git結賬
- 6. 在git中分裂第一次提交
- 7. 從Git多次克隆
- 8. 如何克隆一個克隆的git回購
- 9. 如何克隆git擴展?
- 10. 如何更新git克隆
- 11. Git的 - 如何找到第一次提交特定分支
- 12. Git - 如何獲得給定日期的第一次提交sha1
- 13. 如何獲得第一次提交的Git diff?
- 14. 如何跳到git中的第一次提交?
- 15. Git:如何通過一次提交恢復一系列提交
- 16. 如何在git中一次提交一系列提交?
- 17. jquery第一次克隆div,停止用戶克隆6次以上
- 18. 如何與git克隆一個分支
- 19. 如何一個Git克隆裝入QtCreator
- 20. 提交時出現多表單克隆問題。提交第一個輸入組
- 21. git rebase一次提交
- 22. Git和克隆
- 23. * git svn克隆*
- 24. 使用git克隆git不能克隆回購:// ... - 使用git克隆http://
- 25. 如何在一次提交中提交SVN和GIT?
- 26. GIT克隆和第一個GIT推送問題
- 27. 如何克隆()一個元素n次?
- 28. jenkins git插件每次都克隆
- 29. git svn克隆結果無法克隆
- 30. git rebase第二次和第三次提交
一個Git倉庫可以有多個「第一提交」 – knittl 2010-06-22 12:14:00
好了,你們這些傢伙,不要對第一這樣的臭承諾的事情。總是有至少一個根提交,並且存在多個提交是非常罕見的,特別是在用戶的存儲庫中提出這樣的基本問題。 – Cascabel 2010-06-22 13:39:48