1、git基本操作
在項(xiàng)目中協(xié)同開發(fā)的時(shí)候,會(huì)遇到你更新代碼之后開發(fā)階段中,同事提交了新的代碼,但是你本地代碼還未更新同事最新提交的代碼,如果直接提交,會(huì)產(chǎn)生沖突,這個(gè)時(shí)候需要先將本地最新的代碼暫存起來,然后pull,之后再將暫存的代碼釋放,然后提交。
完整的流程:
- 1.git stash save "save XXXX" (將本地代碼回滾至上次提交的時(shí)候)
- 2.git stash list (查看暫存的list)
- 3.git pull (將遠(yuǎn)程代碼拉下來更新為最新的代碼)
- 4.git stash pop (將第一步的回滾代碼釋放出來,相當(dāng)于對(duì)本地代碼和遠(yuǎn)程代碼進(jìn)行合并)
- 5.git add . (正常的添加,提交推送代碼到遠(yuǎn)程)
- git commit -m "注釋"
- 7.git push origin xx
-
8 刪除分支 git branch -d 分支名
刪除本地分支
-d 是-delete的縮寫
強(qiáng)制刪除本地分支 git branch -D 分支名
-D 是 -delete -force的縮寫 -
9 刪除遠(yuǎn)程分支 git push origin --delete 遠(yuǎn)程分支名
該命令行會(huì)追蹤刪除分支
刪除遠(yuǎn)程分支
2、第一次使用git相關(guān)配置
(1)git 初始化
- git init
(2)配置用戶名和郵箱
- git config --global user.name "XXX"
- git config --global user.email "XXX"
(3)配置免密登錄
- ssh-keygen -t rsa -C “XX@qq.com” 三次回車
(4)查看完整秘鑰內(nèi)容
- cat ~/.ssh/id_rsa.pub
(5)將密鑰復(fù)制到git上面的ssh公鑰里面去

image.png
(6)用如下命令查看是否設(shè)置遠(yuǎn)程密鑰連接成功
- ssh -T git@gitee.com
3、git commit 回滾操作
git commit添加注釋的時(shí)候發(fā)現(xiàn)注釋信息寫錯(cuò)了,想要回滾commit,然后再提交。
-
(1)git log 查看日志
image.png -
(2)git reset --soft HEAD^
或者 git reset --softcommit后那一串^
image.png (3)git status 查看狀態(tài),已經(jīng)變?yōu)樘砑游刺峤唬笾匦耤ommit,然后push就ok了。
4.git 第一次拉代碼并切換分支操作
- (1)初始化本地git倉庫
git init - (2)從git遠(yuǎn)程倉庫克隆代碼
git clone xxx - (3) 創(chuàng)建并切換本地分支
git checkout -b xx - (4)將遠(yuǎn)程地址添加為origin
git remote add origin url地址 - (5)拉取遠(yuǎn)程倉庫分支代碼到本地倉庫
git pull origin feature
4.1 補(bǔ)充操作
-
(1)查看當(dāng)前分支
git branch
image.png -
(2)本地合并兩個(gè)不同的分支(當(dāng)前在feature分支,將release分支合并過來)
git merge release
image.png
- 注意:一般都是先在release分支git pull 之后切換會(huì)feature分支,將release分支合并到feature分支上
- 為什么必須將release分支先合并到feature上是因?yàn)椋瑀elease分支測(cè)試出的問題修改之后,不合到feature開發(fā)分支上時(shí),會(huì)影響一些功能,例如登錄在release分支加密,后端同步解密,但是feature分支不知道這個(gè)事情,就會(huì)出現(xiàn)無法登陸,所以先合并本地分支再進(jìn)行開發(fā)。
- (3)在開發(fā)過程中會(huì)遇到測(cè)試問題,需要切換會(huì)測(cè)試分支修改,這個(gè)步驟如下:
- 1)暫存開發(fā)分支代碼
git stash save "注釋" - 2)切換到測(cè)試分支
git checkout release - 3) 修改代碼,然后像平常一樣add commit push
- 4)測(cè)試分支修改提交后,切換會(huì)開發(fā)分支
git checkout feature - 5)合并分支要在沒有修改過的分支上進(jìn)行,所有,在開發(fā)分支上先合并
git merge release - 6)合并完成之后,在開發(fā)分支pop一下暫存的代碼,就可以繼續(xù)開發(fā)了
git stash list---git stash pop stash@{0}
- 1)暫存開發(fā)分支代碼
5、其他分支合并到master分支
- 1)修改主分支、本地提交,查看git提交歷史,
- 2)增加新分支,本地提交
- 3)提交主分支到遠(yuǎn)程倉
- 4)提交新分支到遠(yuǎn)程倉
- 5)合并分支
# 切換到master分支
git checkout master
# 查看當(dāng)前所有分支
git branch -a
# 查看master分支是否有需要提交的,先提交完成后,再合并分支
# 合并分支
git merge 分支名(如:feature)
# 合并過程中會(huì)有一個(gè)vim編輯框出現(xiàn),讓你填寫合并的理由,可以不輸入,直接‘:wq!’退出
# 本地合并完成后,推送到遠(yuǎn)程分支
git push
# 至此合并完成
5.1 兩個(gè)非master分支合并
- 場(chǎng)景是將兩個(gè)非master上的分支進(jìn)行合并,并且不造成沖突。
比如現(xiàn)在有兩個(gè)分支feature,release?,F(xiàn)在將feature合并到release
首先及將feature分支上的代碼clone下來,并且提交到新創(chuàng)建的分支back(這是為了不沖突)
提交到back后,本地新建一個(gè)release分支并將其與遠(yuǎn)程release分支進(jìn)行關(guān)聯(lián)。
切換到release分支。進(jìn)行g(shù)it merge back。
成功后再將merge的代碼push到遠(yuǎn)程release分支。
這樣就不用擔(dān)心沖突了。





