來公司一週多,主要是在熟悉各類環境和流程,而做爲研發來說,git的使用也是必不可少的。之前使用方式單一,幾我的對着master,pull和push,來了以後發現其實在平常的開發中,git能夠很方便的幫咱們進行分工和合並,這裏總結一些平時可能會用到的命令和要點:git
1. 開發模式:服務器
也瞭解過,其實部門內部基本上都是分支開發的模式,不多有人作主幹開發,這樣的好處也是能夠保證主幹的可持續發佈(主幹好像是被髮布服務Odin接管了)。那如今基本的開發模式(對於我這個單用戶來講),是這樣的:ide
可能有些麻煩,可是這樣能夠保證每次dev更新能夠及時合併到本地,而且加了本地dev就不須要遠端merge以後馬上拉最新的代碼。固然遠端會有不少分支,以後開發的版本多了,功能多了,這個圖還會再作調成,本地可能也會多一些分支作不一樣的模塊修改。工具
2. 基本命令fetch
3. Git查看、刪除遠程分支idea
查看遠程分支
加上-a參數能夠查看遠程分支,遠程分支會用紅色表示出來(若是你開了顏色支持的話):
$ git branch -aspa
刪除遠程分支
在Git v1.7.0 以後,可使用這種語法刪除遠程分支:
$ git push origin --delete <branchName>命令行
不然,可使用這種語法,推送一個空分支到遠程分支,其實就至關於刪除遠程分支:
git push origin :<branchName>設計
兩種語法做用徹底相同。
指針
4. git log命令
好比咱們有 2 個分支:master, dev,如今想查看這兩個 branch 的區別,有如下幾種方式:
- 查看 dev 有,而 master 中沒有的:git log dev ^master
- 同理查看 master 中有,而 dev 中沒有的內容:git log master ^dev
7. git reset --hard,--soft,--mixed
舉例:
(F)
A-B-C ↑ master
a. 輸入git reset --hard
,結果會變成:
(F)
A-B ↑ master
C
狀態完全沒有,再也找不回來。因此,沒事不要用這個命令。
b. 輸入了git reset --soft
,結果是:
(F)
A-B-C ↑ master
文件狀態與分支的指針都指向上一個提交,C
仍是在的,只是沒顯示。
c. 輸入 git reset --mixed
,結果是:
(F)
A-B-C ↑ master
分支指針指向上次提交點,可是文件狀態仍是在當前文件 C
,我看到的現象就是 C
文件還在,可是沒有 add
,是紅色的。
能夠看出,三個命令中 mixed
是最好的回退處理方式,其實這也是 git reset
的默認參數。
8. git stash ,git stash pop
git stash 可用來暫存當前正在進行的工做, 好比想pull 最新代碼, 又不想加新commit, 或者另一種狀況,爲了fix 一個緊急的bug, 先stash, 使返回到本身上一個commit, 改完bug以後再stash pop, 繼續原來的工做。
寫在最後:其實慢慢發現git是個設計很是有意思而且東西不少的工具,本身瞭解的仍是很淺顯,這只是做爲本身的一個命令收錄吧,以後用到其餘的會不斷更新。