git的命令非常多,能實(shí)現(xiàn)很多客戶端上沒有提供的功能坏瘩,本文歸納日常工作中遇到的場(chǎng)景盅抚,并給出解決辦法
統(tǒng)計(jì)某個(gè)文件的提交次數(shù)
git log -p cmd.php | grep -e 'commit [a-zA-Z0-9]*' | wc -l
統(tǒng)計(jì)某個(gè)文件兩周內(nèi)的提交次數(shù)
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
建議每次拉服務(wù)器內(nèi)容前都先弄到緩沖區(qū),然后在本地修改沖突倔矾,再提交
git stash
git pull
git stash pop
修改了submodule的內(nèi)容妄均,push到submodule的倉庫,并修改本倉庫的submodule指針
cd submodule文件路徑
git commit .
git push origin master
git add submodule文件路徑
cd 項(xiàng)目根目錄
git commit .
git push
當(dāng)本地commit與服務(wù)器記錄有沖突的時(shí)候哪自,git拒絕做自動(dòng)merge丰包,可以用如下命令
git commit -i .
獲取某一個(gè)branch的時(shí)間區(qū)間
#獲得一個(gè)branch的所有提交tag,按時(shí)間倒序
git log master..$branch --oneline
#獲得一個(gè)tag的提交時(shí)間
git show $tag --pretty=format:"%ci"