清理遠程倉庫已刪除、本地仍存在的遠程分支。有時候遠程倉庫的某個分支已經(jīng)被刪除了,但是使用
git branch -r查看時,該分支在我們本機上依然存在。這是因為我們執(zhí)行git fetch或者git pull命令時并不會同步清理這些遠程倉庫已刪除、本地仍存在的遠程分支。這時我們可以使用git remote prune origin或者git fetch -p(即--prune,表示在 fetch 代碼之后刪除未跟蹤的遠程分支)進行清理。我比較喜歡用git fetch -p,既拉了代碼,又清理了沒用的遠程分支,一舉兩得!消除
git pull時產(chǎn)生的 Merge 消息。我們執(zhí)行git pull時,總是會產(chǎn)生一條無意義的 Merge 消息。如何消除這條 Merge 消息呢?熟悉 Git 的 猿類都知道執(zhí)行 rebase 是不會產(chǎn)生 Merge 消息的,所以還是這個思路,我們可以通過如下方式消除git pull時產(chǎn)生的 Merge 消息。
一、 每次執(zhí)行git pull時加上--rebase參數(shù),即每次 pull 代碼時都執(zhí)行git pull --rebase
二、先執(zhí)行git config --global pull.rebase true(在一臺機器上只需要執(zhí)行一次),然后執(zhí)行git pull。推薦使用這種方式,省事!查看修改過的文件名。
git diff會顯示當前工作區(qū)有哪些內(nèi)容發(fā)生了改動,如果只想查看有哪些文件名發(fā)生了修改,就可以使用git diff --name-only。你可能會問,git status不也可以么?沒錯,但是git status還會顯示一些額外信息,比如 “Changes not staged for commit...”等,不方便與外部腳本進行交互。應(yīng)用其他分支的 Commit 到當前分支。有時為了方便,我們可能在某個功能分支上修復了一個 bug ,后來才意識到應(yīng)該新開一個 bugfix 分支再去修改和 Commit 。新建 bugfix 分支后,我們不必手把手的將代碼再修改一遍,只需要使用
git cherry-pick your-bugfix-commit-hash就可以將在功能分支上修改bug的代碼"應(yīng)用"過來,super cool!查看某個文件的每一行是誰修改的。使用
git blame $filename可以查看 $filename 的每一行是誰修改的,加上-L參數(shù),例如git blame -L start_line,end_line $filename或者git blame $filename -L start_line,end_line還可以查看從start_line到end_line的這些行是誰修改的。保存修改過但尚未提交的內(nèi)容。經(jīng)常會有這樣的時刻,正在開發(fā)某個功能,然后要去修復一個重要的bug,那已經(jīng)修改過的內(nèi)容怎么辦?先提交代碼,然后切分支去修復bug?這么做也可以!但是我們有更優(yōu)雅的方式,那就是使用
git stash。git stash會把修改過但未提交的內(nèi)容保存起來,然后我們就可以切分支去修改 bug 了。修改完bug之后,再切換到我們功能分支,輸入git stash pop就可以把之前修改過但尚未提交的內(nèi)容恢復回來。具體操作步驟如下:
1>git checkout feature-branch
2> 開發(fā)功能......
3> 被告知要修改 bug
4>git stash
5>git checkout hotfix
6> 修改 bug 并提交代碼
7>git checkout feature-branch
8>git stash pop清理未跟蹤的文件。一個新需求,你剛剛創(chuàng)建了model、view、controller和spec的一些文件,然后產(chǎn)品經(jīng)理又告訴你這個需求不做了(想踹死他是不是?),這時可以使用
git clean命令可以刪除還未加入版本倉庫的文件。git clean默認情況下是不會刪目錄的,可以使用git clean -f -d optional-dir-name-or-current-dir連目錄一起刪除。git clean的詳細參數(shù)參見:git help clean
Git 實用小技巧
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
相關(guān)閱讀更多精彩內(nèi)容
- Git是目前最流行的版本管理系統(tǒng),也是最先進的分布式版本控制系統(tǒng)(distributed version cont...
- 分片機制:分片的機制:一開始插入數(shù)據(jù)時,數(shù)據(jù)是只插入到其中一塊分片上的,插入完畢后,mongodb內(nèi)部開始在各片之...