Git
使用git squash 合併commit
小弟之前一直有個習慣,每次寫程式都要寫到結果正確了,才把該commit的commit;這樣造成的結果是,常常累積了數百行的差異才commit,要是中途不小心手滑了一下,辛苦就全化作流水了。
阿蹦大神曰:不用結果正確,編譯可過就commit
這樣…不是會跑出一堆亂七八槽的commit嗎?
這就要用到git squash功能了。
應用git stash 於多分枝之版本控制
本文是要說明git中stash指令的應用,基本需要先知道git 基本的add, commit,以及branch的功能。
使用git進行版本控制,branch是相當重要的功能,一般會建議要開發一個新的功能,就要先分出一個新的branch,開發好新的功能後再merge到master的版本內。
編按:雖然話是這麼說啦,可是筆者在實作時通常還是一個master branch一直commit下去XD。
當分枝一多的時候,就會出現一些問題,例如在一個分枝中修改到一半的內容,例如:「雷射彈幕」,這時有些點子想要切到另一個分枝中修改其他內容,但這個「雷射彈幕」的功能還沒達到可以commit的等級,就需要stash來暫存目前修改的內容。
git partial add
Git 是一款極為強大的工具,雖然說過於強大的功能有時會讓人感到卻步,我也是一項功能一項功能慢慢學,不會的時候就抓著會的同學問,好不容易才變得比較會一些。
最近新學會的功能是git的partial add功能,在這裡做個簡單的介紹:
使用 partial add 的功能,可以讓我們每次只 commit 一部分的東西上去,假設我在某程式開發了讀取、寫入兩樣功能,比較好的做法是讀取部分和寫入部分可以分開commit。
有一部分原因應該是這樣比較分得清楚,如果之後要從這個commit中取出修改內容,或是再修改時都更清楚一點,雖然說筆者到現在也沒有做過這樣的事,不過養成一個好習慣也是好事。
使用vimdiff來解決git merge conflict
最近同時家裡用筆電跟辦公室用桌電,在兩個地方使用 git/github 來管理程式作業,這兩個東西加起來根本神物,本來要用隨身碟同步的東西,現在可以用 git 直接完成。
關於git的基本介紹我就不解釋了,網路上隨便一找就有一堆資源,我當初是看 progit
來學git。
用 git 會遇到的問題是:有時候檔案在github上的檔案已經更新,本地的檔案也有修改過,這時候若想要 git pull 的話會產生conflict,這時候就需要把本地的檔案刪掉重新clone使用merge來解決衝突,偏偏作者手殘常常把檔案 merge 成連«<, »>都保留下來的檔案,相當麻煩;這次好好的研究一下怎麼用vimdiff作為merge的工具,在這裡記錄一下。