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