我老實說,在這裏的語義不清楚。它們都是關於代碼+歷史單元的副本/變體,但過去我不確定我可以說。這個邏輯結構是在什麼地方解釋的?這些詞在Git中意味着什麼:Repository,fork,branch,clone,track?
回答
存儲庫只是存儲工作歷史的地方。它通常位於工作副本的.git
子目錄中 - 您正在處理的文件的最新狀態的副本。
要分割一個項目(在特定時間點從某人的倉庫獲取源代碼,並對其應用自己的分歧更改),可以克隆遠程倉庫以創建它的副本,然後完成自己的工作您的本地存儲庫並提交更改。
在存儲庫中,您擁有分支,這些分支在您自己的存儲庫中是有效的分支。您的分支將在您的存儲庫中有一個祖先提交,並將與您的更改分開。您可以稍後合併您的分支更改。分支讓您一次處理多個不同的功能。
您還可以跟蹤遠程存儲庫中的各個分支。這允許您從其他人的分支中引入更改並將其合併到您自己的分支中。如果你和一個朋友一起工作一個新功能,這可能會很有用。
當然閱讀F手冊和教程是最基本的。但是,在我看來,這是對整個事物的一個很好的總結。非常感激! – brasofilo 2012-06-02 11:29:41
請注意,您可以將本地工作目錄切換到新分支(「git checkout
我認爲需要特別提及的是,無論您使用哪種VCS,分叉和分支都被認爲是兩個單獨的事物。分支被認爲是有利的,並暗示了開發者之間的一致。分叉更加嚴重,因爲這意味着參與項目的開發人員不同意某些事情並決定分道揚some。當雙方達成協議後,成功的分支機構通常會在稍後合併爲一個項目。從那以後,Git(和GitHub)已經模糊了這些術語,這兩個術語基本上代表了相同的想法,但方式不同。 – redteam316 2014-01-27 14:39:45
我要用RTFM回答我自己的問題。
但是,閱讀this罰款手冊。正如作者所說:
「我從中得出的結論是,如果您瞭解Git的工作方式,那麼您只能真正使用Git。僅僅記住你應該在什麼時候運行哪些命令將在短期內運行,但在卡住或者更糟糕的是破壞某些東西之前,這只是一個時間問題。
「不幸的是,Git上的一半現有資源只採用這種方法:它們會引導您通過哪些命令運行,並期望如果您只是模仿這些命令,就應該做得很好。另一半確實貫穿了所有的概念,但是從我所看到的,他們以一種假定您已經瞭解Git如何工作的方式來解釋Git。 」
此介紹似乎已轉移到http://www.sbf5.com/~cduan/technical/git/。原始網址現在仍然有效。 – 2012-06-12 15:19:53
這在上下文中是正確的。如果你需要立即生產或者只是檢查代碼,那麼不要對git的工作有深入的瞭解。教程很好。這就是我進入git的方式。但是,如果您需要更高級的創建分支,分叉,重定位以及其他更高級的任務,那麼您必須知道git是如何工作的,特別是如果您的背景處於集中式源代碼管理中。 – Phil 2015-10-29 17:29:29
This GoogleTechTalk是一個奇妙的介紹Git學習幕後實際發生的事情,同時學習語言也。它是由Git的一個非常早的貢獻者提供的,他在2007年作爲向Git引入的一種方式發表了這個演講。如果你看這個演講,你不僅會知道每個單詞是什麼,例如存儲庫,分支,分支等,但是你也會知道幕後發生的每一件事情是什麼時候發生的,合併等。
地址很長,但信息量很大。它還將Git與其他版本控制系統進行了對比,以便您瞭解爲什麼Git的創建方式以及它與其他控制系統相比的優勢。儘管談話很舊,但啓動和運行非常有幫助。在我跳入手冊之前,我會看這個。我相信事情會變得更有意義。
- 1. 「git branch -track」vs「git checkout -track」
- 2. PREEMPTIVE_XE_DISPATCHER這意味着什麼?
- 3. $這意味着什麼PHP?
- 4. * | *這意味着什麼CSS?
- 5. 在gdb中這意味着什麼?
- 6. 在MongoDB中這意味着什麼?
- 7. 這在PowerPC中意味着什麼?
- 8. 這在AS3中意味着什麼?
- 9. 爲什麼Xcode中的這些錯誤意味着什麼?
- 10. 這些在序言中意味着什麼?
- 11. 這些聲明在我的.htaccess文件中意味着什麼?
- 12. 這些語句在C++/CX中意味着什麼?
- 13. 這些變量在Kohana框架中意味着什麼?
- 14. 這些問號在Windbg中意味着什麼?
- 15. 這些封裝括號在JavaScript中意味着什麼?
- 16. 這些數字在PDO對象中意味着什麼?
- 17. 這些特殊字符在Java中意味着什麼?
- 18. 這些在打印中意味着什麼?
- 19. 什麼robots.txt意味着在這一行?
- 20. %s在這裏意味着什麼?
- 21. 這是什麼頭意味着在PHP
- 22. 可選綁定,「綁定」一詞在這裏意味着什麼?
- 23. 什麼是「這」意味着這些代碼之間的區別
- 24. 在AngularJS中結尾意味着什麼double意味着
- 25. 什麼===在PHP意味着
- 26. 這些評論中的@意味着什麼?
- 27. Mono.Cecil中的這些屬性意味着什麼?
- 28. 變量$這意味着什麼PHP?
- 29. 這個表達意味着什麼?
- 30. 這個java泛型意味着什麼?
我會推薦閱讀Pro Git書的前幾章(http://progit.org/book/)。 – ewall 2010-05-26 21:15:41
+1。很多git教程都會告訴你如何執行某些任務,而不必解釋某些單詞的含義或git如何工作。要求解決這些問題的資源是一個合理的問題。 – 2010-05-26 21:36:35
希望我能+1更多的丹尼爾的評論。雖然某些術語(例如存儲庫)的含義應該是顯而易見的,但它們之間的關係並不總是(分支與分支),真正的含義很容易被習慣於集中式VCS的人誤解。另外,請看Pro Git的「什麼是分支?」部分 - 一個基本的用戶是否真的想知道blob和樹木,還是隻想定性知道分支是什麼? – Cascabel 2010-05-27 12:27:00