git的命令非常多,能實現很多客戶端上沒有提供的功能,本文歸納日常工作中遇到的場景,并給出解決辦法
統計某個文件的提交次數
git log -p cmd.php | grep -e 'commit [a-zA-Z0-9]*' | wc -l
統計某個文件兩周內的提交次數
git log —since=2.weeks -p cmd.php | grep -e 'commit [a-zA-Z0-9]*' | wc -l
更新所有的submodule
git submodule foreach git pull origin master
建議每次拉服務器內容前都先弄到緩沖區,然后在本地修改沖突,再提交
git stash
git pull
git stash pop
修改了submodule的內容,push到submodule的倉庫,并修改本倉庫的submodule指針
cd submodule文件路徑
git commit .
git push origin master
git add submodule文件路徑
cd 項目根目錄
git commit .
git push
當本地commit與服務器記錄有沖突的時候,git拒絕做自動merge,可以用如下命令
git commit -i .
獲取某一個branch的時間區間
#獲得一個branch的所有提交tag,按時間倒序
git log master..$branch --oneline
#獲得一個tag的提交時間
git show $tag --pretty=format:"%ci"