使用git log來顯示branches, 標籤
$ git log --oneline --decorate用git log來顯
diff只顯示有變動的部分, 不顯示整句
$ git diff --word-diff簡短的狀態
$ git status -sb初學者可以只打git status, 會出現比較多的提示
push分支並且自動追蹤
$ git push -u origin master# pushes the "master" branch to "origin" remote and sets up tracking
這個行為能將本地的分支和遠端分支做連結, 之後只要打git pull或是git push, 有連結的分支都會自動更新.
不過git push的預設值也會將相同名字的本地分支push上去. 若不想要這樣的話,可以用
$ git config --global push.default tracking
追蹤一個別人分享的遠端分支
$ git checkout -t origin/feature# creates and checks out "feature" branch that tracks "origin/feature"
若有其他人想分享一個他們工作中的分支, 而你必須要在本地建立一個分支來追蹤, 以方便一起編輯, 並且可以使用git push來新增自己做的改變
使用pull with rebase而不要merge
$ git pull --rebase
# e.g. if on branch "master": performs a `git fetch origin`,# then `git rebase origin/master`
平常使用pull, 其實包含了fetch跟merge, 而merge又會被記錄到merge commit裡面, 我們預設這些紀錄應該是有意義的, 像是什麼功能被整合到release的分支裡. 但有時候, 跟很多人分工時, 大家會使用git pull然後又merge來merge去的, 這樣分支的圖很容易被一些比較不重要的小merge污染, 這時候用rebase就可以讓這些commit都維持在同一條直線上.
如果你要讓某條分支總是維持這樣的設定, 不想每次都加上--rebase的話, 可以這麼做
# make `git pull` on master always use rebase
$ git config branch.master.rebase true
若是要讓全部有追蹤的分支一起使用這個設定
# setup rebase for every tracking branch
$ git config --global branch.autosetuprebase always
看分支裡有哪些改變已經傳到遠端
# while on "feature" branch:$ git cherry -v master
這功能可以檢查哪些commits使用過cherry-pick. 以這個例子就是比較現在所在的feature分支跟遠端的master有哪些改變. 若是(-)開頭就是兩邊都有, 若是(+)開頭, 就是遠端還沒有
留言
張貼留言