git是目前世界上最先進的開源分布式版本控制系統。那么,什么是分布式版本控制系統呢?
想象一下,你正在編寫一份文檔,通常在修改文檔時,無論是增加、刪除還是修改內容,你都會另存為一個新文件。然而,這樣做會帶來一個問題:如果想要找回上次編寫的文檔內容,該怎么辦呢?面對眾多相似的文件,如何找到上次編寫的那一個呢?僅憑時間來查找顯然不夠高效。還有,如果這是一個多人編輯的文檔,如何追蹤誰修改了什么內容呢?
因此,Git可以解決這些問題。
Git的誕生
眾所周知,1991年,linux之父Linus創建了Linux。然而,Linux的發展至今,不僅是Linus一人的功勞,也是成千上萬開發者的共同努力。2002年之前,來自世界各地的開發者通過diff的方式將修改后的Linux源文件發送給Linus,然后Linus手動進行合并。可以想象,這是一項多么繁重的工作。盡管當時已經有了集中式版本控制系統,如svn,但這些系統存在一些缺陷,如速度慢、需要聯網才能使用,還有一些需要付費的版本控制系統,這與Linux的開源精神相悖。隨著Linux代碼庫的不斷擴大,Linus手動合并已經變得非常困難。于是,Linus選擇與某個商業版本控制系統合作,獲得了免費使用權。然而,好景不長,由于有人試圖破解該系統,免費使用權被收回。
隨后,Linus用c語言開發了一個免費的、開源的版本控制系統,即Git。Git的出現,使得Linux的代碼管理變得更加高效。之后,Git迅速流行起來,再后來,github的出現,不僅開源還提供Git倉庫,于是,無數開源項目開始遷移到GitHub。
GitHub:GitHub: Where the world builds software · GitHub
碼云(gitee):Gitee – 基于 Git 的代碼托管和研發協作平臺
暫存區和工作區
簡單來說:
暫存區(stage/index)是暫時存放文件的地方,而工作區則是可見的文件夾。在初始化一個倉庫后,目錄下會生成一個隱藏的.git文件夾。
初次提交文件時,先提交到暫存區,然后再從暫存區提交到工作區。
注:部分圖片源自網絡,如有侵權,請聯系刪除!!!謝謝