Git 實用小技巧

  1. 清理遠程倉庫已刪除、本地仍存在的遠程分支。有時候遠程倉庫的某個分支已經被刪除了,但是使用 git branch -r 查看時,該分支在我們本機上依然存在。這是因為我們執行 git fetch 或者 git pull 命令時并不會同步清理這些遠程倉庫已刪除、本地仍存在的遠程分支。這時我們可以使用 git remote prune origin 或者 git fetch -p (即 --prune ,表示在 fetch 代碼之后刪除未跟蹤的遠程分支)進行清理。我比較喜歡用 git fetch -p ,既拉了代碼,又清理了沒用的遠程分支,一舉兩得!

  2. 消除 git pull 時產生的 Merge 消息。我們執行 git pull 時,總是會產生一條無意義的 Merge 消息。如何消除這條 Merge 消息呢?熟悉 Git 的 猿類都知道執行 rebase 是不會產生 Merge 消息的,所以還是這個思路,我們可以通過如下方式消除 git pull 時產生的 Merge 消息。
    一、 每次執行 git pull 時加上 --rebase 參數,即每次 pull 代碼時都執行 git pull --rebase
    二、先執行 git config --global pull.rebase true (在一臺機器上只需要執行一次),然后執行 git pull。推薦使用這種方式,省事!

  3. 查看修改過的文件名。git diff 會顯示當前工作區有哪些內容發生了改動,如果只想查看有哪些文件名發生了修改,就可以使用 git diff --name-only 。你可能會問,git status 不也可以么?沒錯,但是 git status 還會顯示一些額外信息,比如 “Changes not staged for commit...”等,不方便與外部腳本進行交互。

  4. 應用其他分支的 Commit 到當前分支。有時為了方便,我們可能在某個功能分支上修復了一個 bug ,后來才意識到應該新開一個 bugfix 分支再去修改和 Commit 。新建 bugfix 分支后,我們不必手把手的將代碼再修改一遍,只需要使用 git cherry-pick your-bugfix-commit-hash 就可以將在功能分支上修改bug的代碼"應用"過來,super cool!

  5. 查看某個文件的每一行是誰修改的。使用 git blame $filename 可以查看 $filename 的每一行是誰修改的,加上 -L 參數,例如 git blame -L start_line,end_line $filename 或者 git blame $filename -L start_line,end_line 還可以查看從 start_lineend_line 的這些行是誰修改的。

  6. 保存修改過但尚未提交的內容。經常會有這樣的時刻,正在開發某個功能,然后要去修復一個重要的bug,那已經修改過的內容怎么辦?先提交代碼,然后切分支去修復bug?這么做也可以!但是我們有更優雅的方式,那就是使用 git stashgit stash 會把修改過但未提交的內容保存起來,然后我們就可以切分支去修改 bug 了。修改完bug之后,再切換到我們功能分支,輸入 git stash pop 就可以把之前修改過但尚未提交的內容恢復回來。具體操作步驟如下:
    1> git checkout feature-branch
    2> 開發功能......
    3> 被告知要修改 bug
    4> git stash
    5> git checkout hotfix
    6> 修改 bug 并提交代碼
    7> git checkout feature-branch
    8> git stash pop

  7. 清理未跟蹤的文件。一個新需求,你剛剛創建了model、view、controller和spec的一些文件,然后產品經理又告訴你這個需求不做了(想踹死他是不是?),這時可以使用 git clean 命令可以刪除還未加入版本倉庫的文件。 git clean 默認情況下是不會刪目錄的,可以使用 git clean -f -d optional-dir-name-or-current-dir 連目錄一起刪除。git clean 的詳細參數參見: git help clean

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,316評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,481評論 3 415
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,241評論 0 374
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,939評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,697評論 6 409
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,182評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,247評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,406評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,933評論 1 334
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,772評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,973評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,516評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,209評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,638評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,866評論 1 285
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,644評論 3 391
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,953評論 2 373

推薦閱讀更多精彩內容

  • git常用命令 GIT常用命令備忘:http://stormzhang.com/git/2014/01/27/gi...
    新篇章閱讀 8,529評論 1 26
  • Git是目前最流行的版本管理系統,也是最先進的分布式版本控制系統(distributed version cont...
    pro648閱讀 5,740評論 1 17
  • 分片機制:分片的機制:一開始插入數據時,數據是只插入到其中一塊分片上的,插入完畢后,mongodb內部開始在各片之...
    米刀靈閱讀 3,826評論 0 2
  • 前言 他是她生命里的孤島 她是他天空里的飛鳥 永遠不要輕言等待,等待是多么奢侈的東西。電影里,只需鏡頭切換,字幕上...
    易似非閱讀 949評論 0 1
  • jQuery中的動畫大致分為三類: 基本動畫方法hide()和show()到fadeIn()和fadeOut(),...
    McRay閱讀 379評論 0 0