集中式VS分布式
集中式-》所有代碼庫(kù)都保存在一個(gè)中心服務(wù)器并且為核心代碼庫(kù)鸦泳,C端全部是其的離線拷貝稍计,所有提交最終都要匯總到中心服務(wù)器世曾,并且可以影響全部離線拷貝;
分布式-》所有代碼都可以隨意從一個(gè)P端推送到不同的P端上蜂绎,并且各自平行并互不干擾,本地提交只影響本地代碼庫(kù)笋鄙,只有推送到指定的中心服務(wù)器师枣,并且其他P端更新下來后才會(huì)影響其他P端。中心服務(wù)器也只是其中一個(gè)P端萧落,不具實(shí)質(zhì)性(可以任意指定)践美;
分支管理
分支創(chuàng)建-》git branch <分支名>
如:git branch feature 創(chuàng)建feature
分支查看-》git branch
切換分支-》git checkout <分支名>
如:當(dāng)前在feature分支,需切換到master主分支找岖;git checkout master
創(chuàng)建+切換-》git checkout -b <分支名>
分支合并-》git merge <分支名>
刪除分支-》git branch -d <分支名>
常見命令解析
1)git status 狀態(tài)查看
2)git stash 備份
3)git stash pop
4)git pull/git pull --rebase 遠(yuǎn)程拉取
5)git push 代碼提交
6)git rebase --abort
場(chǎng)景一:同事A新提交到代碼到遠(yuǎn)程倉(cāng)庫(kù)陨倡,我現(xiàn)在想把它拿下來,但我本地代碼有做了修改许布,又不能提交兴革。
1)工作現(xiàn)場(chǎng)先git stash備份
2)git pull --rebase將遠(yuǎn)程修改拉取下來
3)git stash pop還原工作現(xiàn)場(chǎng)
場(chǎng)景二:某個(gè)功能點(diǎn)已經(jīng)完成了,需要把完成的代碼提交到遠(yuǎn)程倉(cāng)庫(kù)
1)git add <文件名>
2)git commit -m
3)git push 遠(yuǎn)程倉(cāng)庫(kù)地址
場(chǎng)景三:提交后發(fā)現(xiàn)同事A對(duì)某個(gè)文件也有修改導(dǎo)致沖突
1)沖突解決
2)重新commit
3)push 到遠(yuǎn)程倉(cāng)庫(kù)