cherry-pick
cherry-pick命令復(fù)制一個(gè)提交點(diǎn)所做的工作,把它完整的應(yīng)用到當(dāng)前分支的某個(gè)提交點(diǎn)上。rebase可以認(rèn)為是自動(dòng)化的線性的cherry-pick。
例如執(zhí)行g(shù)it cherry-pick 2c33a :
正反過程對(duì)比
理解了上面晦澀的幾個(gè)命令,我們來(lái)從正反兩個(gè)方向?qū)Ρ认掳姹驹诒镜氐?個(gè)階段之間是如何轉(zhuǎn)化的。如下圖(history是本地倉(cāng)庫(kù)):
如果覺得從本地工作目錄到本地歷史庫(kù)每次都要經(jīng)過index暫存區(qū)過渡不方便,可以采用圖形右邊的方式,把兩步合并為一步。
Some Tips
如何管理空文件夾
git本身不會(huì)對(duì)空文件夾進(jìn)行版本控制,如果希望項(xiàng)目被clone后自帶一些空目錄,那么可以:
在要被管理的空目錄下創(chuàng)建.gitignore文件。
在.gitignore文件內(nèi)寫入如下代碼。第一行忽略所有文件。第二行除了.gitignore文件不被忽略。
*
!.gitignore
用git實(shí)現(xiàn)遠(yuǎn)程備份
git本地倉(cāng)庫(kù)的初始化采用git init . 即可。如果需要搭建異地備份,除了可以使用開源的gitlab等來(lái)搭建服務(wù)器外,還可以git --bare init . 來(lái)初始化遠(yuǎn)服務(wù)器倉(cāng)庫(kù),然后把本地倉(cāng)庫(kù)推送到服務(wù)器倉(cāng)庫(kù)。這樣可以輕松實(shí)現(xiàn)代碼或文檔的異地備份,即使把代碼備份到本地也是可以的(這或許可以避免rm -rf *的悲劇哦):
git remote add origin git://127.0.0.1/abc.git
然后建立本地到本地的ssh信任關(guān)系,enjoy yourself!
無(wú)密碼登陸git服務(wù)器
調(diào)試技巧:ssh -v git@github.com
GIT與知識(shí)管理
日常工作中,我習(xí)慣用git來(lái)管理github和本地的代碼;也用git來(lái)管理各種配置文件,例如.vimrc,.bashrc等,以及各種技術(shù)文檔。我的博客用vim+markdown來(lái)編寫,也用git來(lái)做版本控制,很方便。感謝linus大神為我們寫了這么好的工具!
歡迎批評(píng)指正!