目錄
曾經聽過一句話:Git 命令滿天飛,是我比較佩服的一個大佬形容自己的,我也幻想過Git滿天飛,而且我還想要實現過,but後來我發現,其實掌握必要且實用的Git命令就已經夠用了,沒必要滿天飛,滿地走就行了。git的教程也特別多,一搜一堆,下面我就想說說我想說的git。
這篇blog,不是一個git教程,只說最常用的,最有用的、也就是關於git的必要知識。在初學git的時候,更建議找一個比較全面的教程,大約要半天到一天的時間就能夠混個臉熟了,重要的是需要動手操作。
最基礎
在聊Git之前,一定要知道git的幾個區域和各個區域的作用,如下:
工作區 : 如果你對文件進行了修改,就會添加到工作區中,使用 git checkout --將工作區中的修改丟棄掉
暫存區 : 使用git add 命令會將工作區的內容添加到暫存區,使用git reset HEAD file 將已經暫存到暫存區的修改移回到工作區 (這裏出現的命令和上面的命令本質上不需要記憶,因爲每次操作之後,都會有提示)
本地倉庫 :使用git commit -m 將暫存區的數據提交到本地倉庫
遠程倉庫 :使用 git push origin brance_name 將本地倉庫的數據推送到遠端
舉個例子來說:
如果你對某個文件進行了修改,git會自動感知文件的變化,該部分變化將會被記錄在工作區中,接下來使用這樣的幾個命令:
git add file (添加到暫存區)
git commit -m 'comment about the change' (提交到本地倉庫)
git push origin 某個分支 (推送到遠程倉庫)
git的幾個區域非常重要,是git大廈的基石。
其他常用:
此外,可以使用git log 來查看提交列表,可以看到你所有的提交,也就是所有分支的提交,你可以根據索引,使用git reset --hard index_value 進行版本的回退,如果當前版本還有未提交到的文件,就進行了版本的回退,然後在回到未來版本的時候,會發現工作區或者暫存區的修改都丟失了,這其實一件很崩潰的事情,因爲你好不容易對代碼進行了修改,but卻丟了,解決的辦法就是使用 git stash 將當前版本工作區和暫存區的修改儲藏起來,然後在進行版本的回退,在回到未來版本的時候,使用 git stash apply 就可以獲取儲藏起來的修改了。
git stash 是一個神奇的操作,能夠讓你從現在回到過去,在回到現在的時候,發現現在的東西(其實是修改但是沒有commit的file)都還在。
git status 也是我常用的命令,用來看看創建了哪些文件,修改了哪些文件,還可以看到提示信息,教你如何進行下一步操作,如果瞭解的 git 命令不多的話,完全可以靠着 git REPL 的提示進行下一步的操作,這一點是非常友好的。
團隊開發
在團隊開發的過程中,大家都是在各自的分支開發,各自寫各自的代碼,這樣能夠提高開發速度而且能夠避免代碼衝突(也即同時有兩個以上的人對通同一個代碼修改,導致git無法決策到底應該採用誰的修改),基本的流程是:
從master分支(一般的)切一個新的屬於自己模塊的分支:git checkout -b dev (創建dev分支,並切換到dev)
然後你在你自己的分支上code的自己的功能模塊
然後提交代碼到本地倉庫,在推送到遠端倉庫(git add; git commit -m ;git push)
提交一個merge request,請求將自己分支的代碼合併到master分支(其他團隊成員也進行同樣的操作)
有的時候你開發的模塊還依賴團隊成員模塊,所以你需要到master分支pull到最新的代碼,然後merge 到自己的分支上。(git checout master;git pull;git checkout dev;git merge master )
所以,輕易不要修改別人的代碼,一旦產生了衝突,手動解決衝突是一件很噁心的事情,但是當噁心發生的時候,你沒有辦法,這個過程就是當你有了小孩兒之後你得給換尿布一樣。
作爲一個老實人,千萬不要告訴去問一個你喜歡的人這樣一個問題:
你覺得我這個人怎麼樣?
因爲你能收到的回覆恐怕就是:
挺好的!!