比較全面的 Git 學習資料整理
說明
這整個 Repository 是關于分布式版本管理工具 Git 及托管商 Github 的使用,大部分都是網友寫的內容,在這里只是做一個資源的匯總和合理的安排,希望能成為最好的學習 Git 的資源,從開始入門使用,到慢慢的提高,再到理解各種原理,希望能夠達成這個目標。
網絡上面已經有了那么多的關于 Git 的文章,為什么還要弄一個repo來專門記錄?網上的文章都是片面的,稍微全點的講解的不夠全面、深入,沒能滿足我對于文章的想象,所以決定自己來寫。
如果你要有一些資源,希望和我一起,把這個搞起來,很簡單, Fork-修改- Pull Request 就 ok。
新手入門
- 為什么開始使用 Git 版本管理,Git VS Svn 有哪些區別?
- 開篇:一篇適合入門學習git的資料匯總 本人的拙筆,歡迎吐槽!
- Github-cheat-sheet 關于使用 Git 和 Github 的一些技巧匯總,中文版在此GitHub秘籍
- Git for beginners: The definitive practical guide - from stackoverflow.com It's so useful to a beginner ,just open the url , read and practice .
- Visual Git Cheat Sheet 通過 Git 的幾個工作區 Stash、Workspace、Index、Local Repository、Upstream Repository 來匯總日常使用的 Git 命令,備忘推薦。
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
- A successful Git branching model 介紹日常推薦的分支開發模型,基于此模型可以通過這個小游戲來進行學習 Learn Git Branch
- Git工作流指南完整的對比目前使用的集中式(Svn)工作流、功能分支工作流、Gitflow 工作流、Forking 工作流、Pull Request 等幾種不同的模式,通俗易懂,強烈推薦看一看,如果覺的排版不好,請查看原分頁文章 Git-workflow-translations
- 熟悉的工作流后,你是否也想要在 Github 上與他人一起協同工作?那么問題來了, Github全程指南-如何高效使用?
- Understanding the GitHub Flow This guide explains how and why GitHub Flow works 簡單實用,更好的理解Github的模式。
- Github 協同開發流程 圖片很贊,簡潔易懂。
Git expert
- 項目依賴其他項目,比如公共 Css、Dll 等等,強大的 Git-submodule 優雅的解決這類問題。理解閱讀 Git Tools - Submodules ,備忘或者查看命令閱讀 Git Submodule Tutorial 或者 Git Submodule 使用完整教程
- Git Submodule 的一些注意事項 一些需要理解并注意的操作
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 。
實踐備忘
- 常用命令手冊 Git 日常開發常用命令整理 ,日常開發中的利器,可以當做備忘錄來使用,推薦 :+1: 。
- 總是使用 git merge --no-ff 而不是 git merge ,記錄下分支的變更歷史。 詳情 http://stackoverflow.com/questions/9069061/what-is-the-difference-between-git-merge-and-git-merge-no-ff
-
恰當的使用 git pull --rebase 避免不必要的merge記錄。 詳情 http://stackoverflow.com/questions/2472254/when-should-i-use-git-pull-rebase 「You should use git pull --rebase when your changes do not deserve a separate branch」
-
Git-flight-rules 一些日常使用中的場景,比如提交錯了分支、提交時的用戶名郵箱不對、丟棄某些提交、未提交的代碼直接提交到另外一個分支等等,很實用。
- How to undo (almost) anything with Git 撤銷一切,匯總各種回滾撤銷的場景,加強學習。
- 怎樣在一臺電腦上同時使用公司 GitLab 和 Github 的服務? 由于公司團隊使用 GitLab 來托管代碼,同時,個人在 Github 上還有一些代碼倉庫,可公司郵箱與個人郵箱是不同的,由此產生的 SSH key 也是不同的,這就造成了沖突 ,文章提供此類問題的解決方案。
- 如何書寫提交信息 當項目越來越大,提交信息越來越復雜的時候,如何書寫好提交信息就變得至關重要,這篇文章的作者總結出7條準則。
- Commit message 和 change log編寫規范-阮一峰 良好的 commit log 好處大大的多。 AngularJS Git Commit Message Conventions
- git-recipes @童仲毅 整理翻譯的一些優秀文章。
- githug Git your game on. 使用通關游戲的形式來練習git的一些命令,非常有趣。
本文由用戶 DanieleTRV 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!