此篇文章會記錄一下我以爲比較實用的Git+Shell(由於筆者不用Sourcetree等圖形化工具,命令行效率更高,同時通用價值也更高一點)的小技巧,或者也能夠說是騷操做,一是爲了給本身當備忘錄,二是分享給有須要的同窗~git
日常咱們會這樣獲取全部已追蹤的遠程分支更新正則表達式
git remote update
git pull --all
複製代碼
若是想獲取所有遠程分支並在本地建立(有時候拉取Github開源項目學習時,常常須要拉取所有分支),如下命令就能夠幫你偷個懶。shell
for remote in `git branch -r `; do git branch --track $remote; done
複製代碼
有沒有一種痛苦,就是切換分支時,必定要寫全寫對名字才能切換,假如分支名又臭又長的話,那就...那就只有複製粘貼了!express
可是且慢!打開 .gitconfig 文件bash
open ~/.gitconfig
複製代碼
在裏面輸入:工具
[alias]
find-branch = !sh -c \"git branch -a | grep -v remotes | grep $1 | head -n 1 | xargs git checkout\" 複製代碼
保存後,此時能夠直接在命令行裏輸入分支名的前幾個字符就好了(只有你確保惟一,不然默認匹配找到的結果的第一個)post
如圖,直接輸入git find-branch ${shortcut}
這種形式,便可快速風騷切換。學習
(有心的同窗發現了,在.gitconfig和在.bash_profile裏發揮想象力,增長各類alias別名,能夠迅速提升工做效率)ui
有時候咱們須要對某些文件批量進行Git操做,而Git自己不必定知足這個需求的時候。能夠參考如下命令:spa
git status -s | grep "README\.md" | sed 's/A //' | while read i; do git reset HEAD $i; done
git status -s | grep "README\.md" | sed 's/M //' | while read i; do git checkout --ours $i; done
複製代碼
上述命令分爲兩步,一是將此項目中全部README.md
文件從暫存區恢復到工做區,二是將此項目中全部README.md
文件的衝突批量改成保留本身的改動。
上述命令通過必定的修改其實能夠知足不少場景的!因此不要被限制住了。
如下摘自互聯網,命令具體使用詳情可自行檢索~
xargs命令是給其餘命令傳遞參數的一個過濾器,也是組合多個命令的一個工具。它擅長將標準輸入數據轉換成命令行參數,xargs可以處理管道或者stdin並將其轉換成特定命令的命令參數。
sh命令是shell命令語言解釋器,執行命令從標準輸入讀取或從一個文件中讀取。
grep(global search regular expression(RE) and print out the line,全面搜索正則表達式並把行打印出來)是一種強大的文本搜索工具,它能使用正則表達式搜索文本,並把匹配的行打印出來。
sed 可依照腳本的指令來處理、編輯文本文件。用來自動編輯一個或多個文件、簡化對文件的反覆操做、編寫轉換程序
想了解更多也能夠參考我以前寫的這篇:Shells命令行學習筆記