比較全面的 Git 學習資料整理

DanieleTRV 7年前發布 | 40K 次閱讀 Git 版本控制系統

說明

這整個 Repository 是關于分布式版本管理工具 Git 及托管商 Github 的使用,大部分都是網友寫的內容,在這里只是做一個資源的匯總和合理的安排,希望能成為最好的學習 Git 的資源,從開始入門使用,到慢慢的提高,再到理解各種原理,希望能夠達成這個目標。

網絡上面已經有了那么多的關于 Git 的文章,為什么還要弄一個repo來專門記錄?網上的文章都是片面的,稍微全點的講解的不夠全面、深入,沒能滿足我對于文章的想象,所以決定自己來寫。

如果你要有一些資源,希望和我一起,把這個搞起來,很簡單, Fork-修改- Pull Request 就 ok。

新手入門

Git 客戶端

Mac 和 Linux 系統推薦使用終端即可,Git 一開始的命令的確很多,別無它法,熟能生巧,多練習即可能夠掌握日常使用的一些名利,再配合 常用命令的alias 或者強大的 zsh 終端 都能顯著的提升效率,當然如果非得尋找圖形化客戶端,也不是沒有;Windows下還是盡快熟悉客戶端的使用吧,因為win下面的bash太難用了:

  • GUI Clients 官方推薦圖形客戶端,羅列的包括了Mac、Windows、Linux下的客戶端,免費及付費的都有,你可以在這里面挑選一個就ok。
  • Git for windows 針對 Window 系統發布的客戶端,集成了 Shell 窗口,方便在 Win 下面使用命令操作。
  • TortoiseGit - The coolest Interface to Git Version Control 在window下使用git,那就不得不提“烏龜”,安裝了 Tortoise 后,右鍵圖形化操作根本分辨不出來哪是 Git,哪是 Svn,很方便使用 Svn 的用戶過度過來。
  • Tower2 號稱最好的 Git 客戶端,只有 Mac 版本,收費,集成 Github、Gitlab、Xcode等服務。
  • SourceTree 免費,功能齊全,Mac+Window 版本,集成 Github 等服務。
  • SmartGit 非商業用途免費,全平臺支持,集成 Github服務。內置 SSH client ,文件比較與合并工具。

Git branch

Git expert

Git 書籍

  • Pro Git 作者Scott Chacon是 Github 的員工,Git 的布道者,這本書被譽為 Git 學習圣經,中間有好多插圖描述的淺顯易懂,挺適合詳細學習下的,最新英文第二版《 Pro Git (Editon 2) 》;
  • Git-internals-pdf 老外寫的,很給力,從目錄上面包括安裝使用以及設計原理都有講解,有機會看看。Pdf 電子版本直接下載地址Git-internals.pdf
  • Git Community Book 匯聚了 Git 社區的很多精華, 并對 Git 的對象模型原理等做了解釋,可以深入的了解下 Git 原理。pdf電子版本直接下載地址 Git Community Book.pdf
  • Git權威指南 國內版本控制咨詢顧問蔣鑫先生的原創書籍,原生中文敘述,更容易理解,查看 作者寫書的緣由
  • Git Reference 中文 為學習與記憶 Git 使用中最重要、最普遍的命令提供快速翻閱,可作為參考資料。
  • Git Magic - a guide from standord 斯坦福大學Git學習指南,適合快速入門。

Git 效率提升

  • Git flow 工具
  • Git flow 中文備忘清單
  • 一個很有意思的學習 Git 的小游戲 http://pcottle.github.io/learnGitBranching/
  • Git completion 終端 Git 命令的 Tab 鍵補全功能,比如打開終端,輸入 git che ,按 Tab 鍵,則會出現 check-attr\check-ignore\checkout 等等的選項,支持 Bash、Zsh 等 Shell,使用方法(以 Bash Shell 為例):下載鏈接中相應的版本到用戶目錄下,修改 ~/.bashrc 文件 ,加入 source ~/git-completion.bash ,使得每次打開終端時都執行一次 git-completion.bash 腳本,來完成git 命令的 Tab 補全。或者采用這種方法 Quick Tip: Autocomplete Git Commands and Branch Names in Bash
  • .gitignore template 各種語言、各種編輯器的 .gitignore 文件模板,當你進行某些語言的開發時候,直接使用相應的模板即可,省去自己寫的時間(還不全),當然你也可以去貢獻自己的模板,不知道 .gitignore ? 簡單講就是不讓git跟蹤某些文件,詳情閱讀: http://git-scm.com/docs/gitignore PS: 推薦使用 .gitignore_global 文件進行全局過濾,比如mac下的 .DS_Store 文件,省去在每個 Repo 下進行設置 .gitignore 文件了。全局模板參考: https://github.com/github/gitignore/tree/master/Global

Git extensions

  • Git 的大文件支持Git LFS : Git在對大文件進行版本管理的時候,速度上是很慢的,一個幫助處理大文件的擴展插件,在 GithubHelp Working with large files 中提到,不建議對大文件如日志、database等使用Git進行版本控制,如果非要有這種需求,則建議使用 Git LFS 。

實踐備忘

 

 本文由用戶 DanieleTRV 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!