git是一個好東西,但對於新手來說,這個工具並不好使用,因為它裡面涉及到很多東西,而這些東西新手 一時間是無法理解的。不幸的是,本人就是新手一枚,所以,這裡並不會講太多有關於git的原理,什麼樣的 階段就該做什麼樣的事情,先從熟悉工具的常用用法開始。
為方便使用git,我們首先在github上創建 一個repository。我們可以在github上根據教程創建一個,這裡不講步驟,上面講得非常清楚。
我先 在github上創建一個遠程庫"Pratice"。由於我之前在github上已經有一個遠程庫了,為了防止提 交文件時產生混亂,我需要為這個新的repository創建一個新的遠程庫。
默認下我們是有 一個遠程庫:origin,但通過上面的操作,現在我們有新的遠程庫:pratice。而且我們還可以通過rename來重 新命名。
通過add在分支上添加新的文件,然後再commit,-m後面的描述非常重要,當我們需要回滾代碼版本的時 候。如果在remote add origin的時候,出現問題,像是上面這樣,可以用remote rm origin來將之前提交上 去的遠程庫清除,這個清除是清除本地遠程庫。然後我們再push origin master,將該遠程庫的master分支上 的內容push上去。如果這邊出現問題,可以使用pull origin master,道理和上面的remote rm origin是一樣 的。
通過上面的命令,我們現在可以在github上看看我們的repository:
奇怪的是,我們 明明只是想將Pratice這個文件夾推上去,但是卻發現Bluetooth也推上去了。這個是因為mater這個分支中包 含有Bluetooth,所以每次推上去的時候都會將Bluetooth推上去。
master是我們的默認分支,我們可 以刪除該分支,然後創建新的分支:
這裡通過branch創建新的分支 ,然後通過checkout跳轉到新的分支上。這裡我們就不刪除master,畢竟我有很多工作都是在該分支上。
創建並跳轉到新的分支上後,我們可以在該分支上提交,然後再和master分支merge:
先 是跳轉到master分支上,然後通過diff查看兩個分支上的不同,接著就是merge。沒有沖突,兩個分支上的內 容就會合並到一塊,如果有沖突,會輸出相應的信息,這時候我們只要根據該信息對發生沖突的文件進行修改 。
當然,上面的問題我們還是沒有解決:本來只是想要推Pratice這個文件夾上去,但是卻不小心把 Bluetooth文件夾推上去了,怎麼刪除這個啊?很可惜,我沒有找到簡單方便的指令,我的方法就是重新創建 一個新的repository,然後將正確的內容推送進來。如果讀者們有好的方法,還請指出,之前已經試過了很多 網上的教程,都沒有任何作用。
使用git的最大好處,就是它可以隨時隨地的查看代碼版本而不需要 聯網,因為它將代碼版本放在了本地。
使用log可以查看自己的提交 記錄,注意到我們提交時候的描述信息了吧!是的,這是為了方便我們找回代碼版本,當然,通過查看日期也 還是可以找到的。
我們現在想要將代碼回滾到第一次提交時的版本:
HEAD~1表示回滾到上一次提交,這時候打開本地的文件夾,就會發現代碼已經回滾到了第一次提交時的狀 態。
更直接的方法就是利用每次commit時的哈希值:
只需要開頭5位就行,現在我們 又回滾到了merge的時候。
只要熟悉git的使用,就會發現git真的是一個好東西。
這裡之所以 不講git的原理,是因為怕混淆我們的注意力,作為新手,首先應該是熟悉工具的使用,然後再掌握工具的原 理,否則,在開頭就死在一大堆細節中。
如果有什麼問題或者好的建議,衷心希望讀者能夠指出,第 一次使用git,總是有很多問題的。