關(guān)聯(lián)遠(yuǎn)程庫(kù),使用命令(server-name 換成你賬戶的昵稱嗽交,repo-name換成倉(cāng)庫(kù)的名字)
$ git remote add origin git@server-name:path/repo-name.git
第一次推送master分支的所有內(nèi)容
$ git push -u origin master
本地提交后,只要有必要笛质,就可以使用命令推送最新修改
$ git push origin master
從遠(yuǎn)程庫(kù)克隆到本地
$ git clone https://github.com/littlematt/gitskills.git```
5. 創(chuàng)建dev分支炼邀,然后切換到dev分支
```$ git checkout -b dev```
相當(dāng)于以下兩條命令:
```$ git branch dev
$ git checkout dev```
6. 用git branch命令查所有分支,當(dāng)前分支前面會(huì)標(biāo)一個(gè)*號(hào)
```$ git branch```
7. 我們可以在dev分支上像主分支一樣正常提交灯抛,dev分支的工作完成金赦,我們就可以切換回master分支命令
```$ git checkout master```
8. 把dev分支的工作成果合并到master分支命令git merge,用于合并指定分支到當(dāng)前分支:
``` $ git merge dev```
9. 合并完成后对嚼,就可以放心地刪除dev分支命令
``` $ git branch -d dev```
10. 當(dāng)Git無(wú)法自動(dòng)合并分支時(shí)夹抗,就必須首先解決沖突。解決沖突后纵竖,再提交漠烧,合并完成。用命令可以看到分支合并圖
```$ git log --graph --pretty=oneline --abbrev-commit```
11. 合并分支時(shí)靡砌,如果可能已脓,Git會(huì)用Fast forward模式,但這種模式下通殃,刪除分支后度液,會(huì)丟掉分支信息。如果要強(qiáng)制禁用Fast forward模式画舌,Git就會(huì)在merge時(shí)生成一個(gè)新的commit堕担,這樣,從分支歷史上就可以看出分支信息曲聂。因?yàn)楸敬魏喜⒁獎(jiǎng)?chuàng)建一個(gè)新的commit霹购,所以加上-m參數(shù),把commit描述寫進(jìn)去
```$ git merge --no-ff -m "merge with no-ff" dev```
查看分支歷史
```$ git log --graph --pretty=oneline --abbrev-commit```
12. Git還提供了一個(gè)stash功能朋腋,可以把當(dāng)前工作現(xiàn)場(chǎng)“儲(chǔ)藏”起來(lái)厕鹃,等以后恢復(fù)現(xiàn)場(chǎng)后繼續(xù)工作
```$ git stash```
13. 查看工作現(xiàn)場(chǎng)存在哪里
```$ git stash list```
14. 恢復(fù)工作現(xiàn)場(chǎng),有兩種
一乍丈、是用```git stash apply```恢復(fù)剂碴,但是恢復(fù)后,stash內(nèi)容并不刪除轻专,你需要用```git stash drop```來(lái)刪除忆矛;
二、用```git stash pop```,恢復(fù)的同時(shí)把stash內(nèi)容也刪了
15. 恢復(fù)指定的stash催训,用命令:
```$ git stash apply stash@{0}```
16.開(kāi)發(fā)一個(gè)新feature洽议,最好新建一個(gè)分支;
如果要丟棄一個(gè)沒(méi)有被合并過(guò)的分支漫拭,可以通過(guò)命令強(qiáng)行刪除
```$ git branch -D <name>```
17.查看遠(yuǎn)程庫(kù)的信息亚兄,用
``` $ git remote```
顯示更詳細(xì)的信息
``` $ git remote -v```
18.多人協(xié)作的工作模式通常是這樣:
首先,可以試圖用git push origin branch-name推送自己的修改采驻;
如果推送失敗审胚,則因?yàn)檫h(yuǎn)程分支比你的本地更新,需要先用git pull試圖合并礼旅;
如果合并有沖突膳叨,則解決沖突,并在本地提交痘系;
沒(méi)有沖突或者解決掉沖突后菲嘴,再用git push origin branch-name推送就能成功!
如果git pull提示“no tracking information”汰翠,則說(shuō)明本地分支和遠(yuǎn)程分支的鏈接關(guān)系沒(méi)有創(chuàng)建龄坪,用命令
```$ git branch --set-upstream-to=origin/branch-name```
19.查看遠(yuǎn)程庫(kù)信息,使用git remote -v复唤;
本地新建的分支如果不推送到遠(yuǎn)程瞳秽,對(duì)其他人就是不可見(jiàn)的插龄;
從本地推送分支,使用git push origin branch-name,如果推送失敗循集,先用git pull抓取遠(yuǎn)程的新提交荣瑟;
在本地創(chuàng)建和遠(yuǎn)程分支對(duì)應(yīng)的分支世剖,使用
``` $ git checkout -b branch-name origin/branch-name```杆怕,本地和遠(yuǎn)程分支的名稱最好一致;
建立本地分支和遠(yuǎn)程分支的關(guān)聯(lián)攒盈,使用
```$ git branch --set-upstream-to=origin/branch-name```
從遠(yuǎn)程抓取分支抵拘,使用git pull,如果有沖突型豁,要先處理沖突僵蛛。
20.注意點(diǎn):
Cannot update paths and switch to branch at the same time
當(dāng)使用git進(jìn)行創(chuàng)建本地的遠(yuǎn)程分支時(shí)操作:
``` $ git checkout -b local-name origin/remote-name```
出現(xiàn)錯(cuò)誤:
fatal: git checkout: updating paths is incompatible with switching branches.Did you intend to checkout 'origin/remote-name' which can not be resolved as commit?
解決辦法:
``` $git remote show origin
$ git remote update
$ git fetch
$ git checkout -b local-name origin/remote-name```