Git 自救指南

Git 雖然因其分佈式管理方式,不徹底依賴網絡,良好的分支策略,容易部署等優勢,已經成爲最受歡迎的源代碼管理方式。可是一分耕耘一分收穫,若是想更好地掌握 git,須要付出大量的學習成本。即便在各類 GUI 的加持下,也不得不說 git 真的很難,在 V2EX 上也常有如何正確使用 git 的討論,同時在 Stackoverflow 上超過 10w+ 的 git 相關問題也證實了 git 的複雜性。再加上 git 的官方文檔也一直存在着 「先有雞仍是先有蛋」 的問題,雖然文檔很是全面,但若是你不知道你遇到的問題叫什麼,那麼根本就無從查起。git

做爲國內領先的研發管理解決方案供應商,CODING 一直致力於在國內普及 git 的使用,爲軟件研發提供更高效率。本文節選自 Katie Sylor-Miller 在平常工做中所遇到過的讓他很頭疼的 git 相關問題,並整理了相應的應對措施,在這裏分享給正在學習如何使用 git 的同窗們。固然這些應對措施並非惟一的,可能你會有其餘更好的應對方法,這也偏偏是 git 這套版本控制系統強大的地方。網絡

原文標題:《Oh shit,git!》
原文地址:ohshitgit.com/分佈式

我剛恰好像搞錯了一個很重要的東西,可是 git 有個神奇的時間機器能幫我復原!

圖片

reflog 是一個很是實用的命令,你可使用這個命令去找回無心間刪除的代碼,或者去掉一些剛剛添加的卻把倉庫裏的代碼弄壞的內容。同時也能夠拯救一下失敗的 merge,或者僅僅是爲了回退到以前的版本。學習

我 commit 完纔想起來還有一處小地方要修改!

圖片

當我 commit 完而後跑測試的時候,常常忽然發現忘了在等於號前面加空格。雖然能夠把修改過的代碼再從新 commit 一下,而後 rebase -i 將兩次揉在一塊兒,不過上面的方法會比較快。測試

我要改一下上一個 commit message!

圖片

當大家組對 commit message 有格式要求時,或者當你忘了中英文間要加空格,這個命令能救你狗命。.net

我不當心把本應在新分支上的內容 commit 到 master 了!

圖片

注意:這個指令必須在錯誤的 commit 後直接執行,若是你已經試了其餘的方式,你可能就須要用 git reset HEAD@{number} 來代替 HEAD~ 了。3d

我不當心 commit 到錯誤的分支上了!

圖片

也有不少人推薦了 cherry-pick 的解決方案,因此選哪一個就看你心情了。版本控制

圖片

我執行了 diff 可是啥也沒出現

圖片

Git 不會給經過 add 加入到 staging 區域裏面的文件作 diff ,除非你加了 --staged 的標籤,別懷疑了這是一個 feature 不是一個 bug,固然對於第一次碰到這個問題的人來講仍是有些很差理解的。cdn

圖片

Git 從入門到放棄

圖片

爲了維護最後的尊嚴 XDblog

不知道你在使用 git 中有沒有遇到過各類使人掀桌的問題呢?

或者做爲 git 資深用戶有什麼能夠分享的小技巧呢?

歡迎你們在留言區跟咱們互動~

點擊使用 CODING ,體驗敏捷研發!

相關文章
相關標籤/搜索