git的常用命令及工作中沖突問題解決方法

工作中其實(shí)用的最多的就是這些命令
git status 查看狀態(tài)
git add -A 將所有文件提交至?xí)捍鎱^(qū)
git commit -m "信息說明" 將修改文件提交至存儲(chǔ)庫
git push origin dev 將當(dāng)前分支提交至遠(yuǎn)程dev分支中
git checkout dev切換至本地dev分支
git pull origin dev 將遠(yuǎn)程dev分支拉取至本地當(dāng)前分支
git rebase dev 解決本地當(dāng)前分支與本地dev分支中的代碼沖突
git stash儲(chǔ)存(避免臟提交)
git stash pop改完之后返回繼續(xù)之前工作
git log 查看提交日志
git reset --hard "版本號"版本回退

一、git官網(wǎng)學(xué)習(xí)網(wǎng)址

https://git-scm.com/book/en/v2

二、一臺(tái)電腦上配置多公鑰文件

git bash中使用命令ssh-keygen之后會(huì)出現(xiàn),下圖

配置公鑰路徑

信息填寫好了以后,在個(gè)人輸入的路徑(注意一定要寫全路徑)下就可以看到剛才命令生成的2個(gè)文件了
查看公鑰文件

之后在公鑰文件路徑下創(chuàng)建config文件注意該文件沒有后綴擴(kuò)展名,打開config文件作以下配置,有幾個(gè)公鑰就配幾個(gè)。
新建config文件

config文件配置

后面將不同的.pub后綴公鑰文件里的內(nèi)容添加至不同的遠(yuǎn)程倉庫,這樣就可以不同遠(yuǎn)程倉庫擁有不同公鑰了。(coding,github,碼云等等都可以單獨(dú)擁有一個(gè)公鑰文件)

三、常用命令

  1. 克隆遠(yuǎn)程倉庫,使用命令git clone 倉庫ssh,如下圖
    使用git clone克隆遠(yuǎn)程倉庫
  2. 使用命令git status顯示被修改文件
    顯示被修改文件
  3. 使用命令git add .或者git add -A是將所有修改文件提交至?xí)捍鎱^(qū),命令git add 文件名是將某個(gè)文件添加至?xí)捍鎱^(qū)
  4. 使用命令git commit -m "本次提交說明信息"將修改文件提交至存儲(chǔ)庫
  5. 使用命令git push origin master將當(dāng)前分支所有本地推送至遠(yuǎn)程倉庫master分支
    git簡單的一個(gè)使用流程示例
    簡單git的一個(gè)步驟

四、工作中的git使用

通常情況下,我們不會(huì)將項(xiàng)目提交至master分支,工作中項(xiàng)目經(jīng)理會(huì)在創(chuàng)建一個(gè)dev分支

  1. 使用命令check out -b dev本地新建dev分支并切換至dev分支
  2. 之后使用命令git branch即可查看所有本地分支,帶*號的分支為當(dāng)前工作的分支
  3. 然后使用命令git push origin dev:dev將本地dev分支推送至遠(yuǎn)程dev分支(git push origin 本地分支名:遠(yuǎn)程分支名)推送以后這樣遠(yuǎn)程倉庫就有了dev分支了
    本地創(chuàng)建dev分支并推送至遠(yuǎn)程
  4. 修改默認(rèn)分支,工作中一般不會(huì)操作master分支,選擇新建的dev分支點(diǎn)擊確定
    點(diǎn)擊修改默認(rèn)分支

    選擇默認(rèn)分支

    默認(rèn)分支修改成功

    項(xiàng)目經(jīng)理創(chuàng)好項(xiàng)目以后,接下來開發(fā)人員操作如下:
  • 首先還是需要在本地,使用命令git clone ssh克隆遠(yuǎn)程倉庫至本地,之后cd進(jìn)入目錄默認(rèn)的分支就是dev分支了
  • 克隆好了以后,開發(fā)人員不會(huì)再dev分支上進(jìn)行操作,一般會(huì)基于dev分支創(chuàng)建一個(gè)自己的分支,使用命令git checkout -b 分支名
    image.png
  • 將文件內(nèi)容進(jìn)行更改,使用命令git status查看修改內(nèi)容
    image.png

    然后依次使用git add -A,git commit -m "提示信息",git push origin 開發(fā)人員分支名,之后遠(yuǎn)程倉庫就會(huì)出現(xiàn)開發(fā)人員分支,最后我們點(diǎn)擊新建合并請求將其與dev分支合并,當(dāng)然點(diǎn)擊以后可能出現(xiàn)可合并,也可能出現(xiàn)不可合并,不可合并為代碼沖突,需要同事之間進(jìn)行溝通處理
    將kayle/user分支推送至遠(yuǎn)程

    遠(yuǎn)程倉庫已有kayle/user分支

    可合并示例

    不可合并的情況,現(xiàn)在加入我們之前還沒有點(diǎn)擊合并,但是之前一位同事他已經(jīng)修改文件了,并且已經(jīng)合并至dev分支了
    同事先行提交至dev分支合并了

    這個(gè)時(shí)候我們點(diǎn)擊自己的分支的時(shí)候,新建合并請求就會(huì)出現(xiàn)不可自動(dòng)合并,即出現(xiàn)代碼沖突
    不可自動(dòng)合并

    之后我們使用命令git checkout dev將本地分支切換至dev分支,使用命令git pull origin dev將遠(yuǎn)程dev分支更新至本地,完了以后我們在使用命令git checkout 自己的分支,在使用命令git rebase dev
    將遠(yuǎn)程dev分支更新至本地dev,并拉取至本地kayle/user分支

image.png

與同事溝通過后,協(xié)商保留哪些,之后再次,確認(rèn)后,在使用git staus查看文件修改狀態(tài),在使用git add -A,之后使用命令git rebase --continue,git push origin kayle/user,這時(shí)出現(xiàn)我們自己本地kayle/user分支和遠(yuǎn)程kayle/user分支代碼沖突,我們在將遠(yuǎn)程kayle/user更新下來,使用命令git pull origin kayle/user,之后再?zèng)_突文件選擇保留內(nèi)容就好,最后在推送至遠(yuǎn)程
自己本地分支與遠(yuǎn)程自己分支出現(xiàn)沖突

打開沖突文件

沖突解決完以后,再次將本地分支推送至遠(yuǎn)程

之后在進(jìn)入遠(yuǎn)程倉庫,選擇自己的分支,即顯示可合并,我們在點(diǎn)擊新建合并請求
沖突已解決分支顯示可合并

之后我們輸入標(biāo)題,點(diǎn)擊新建合并請求
進(jìn)入選擇新建合并請求

接下來就是code review過程,添加評審者(一般是項(xiàng)目成員),添加的目的是為了讓團(tuán)隊(duì)成員也看看代碼會(huì)不會(huì)給項(xiàng)目造成不利的影響,如果都認(rèn)為沒有問題,那么我們點(diǎn)擊合并分支進(jìn)行合并


添加評審者

在文件改動(dòng)里面可以看到文件修改的地方,紅色的是刪除的部分,綠色的是新增的部分,點(diǎn)擊加號評審者可以對該行代碼做出評論


i評審者評論

若有評審者看不懂該行代碼,則我們需要進(jìn)行解釋,可以重新再代碼中詳細(xì)寫明,然后再次推送至遠(yuǎn)程倉庫,將推送后的鏈接復(fù)制回復(fù)至該評審者
image.png

將新增的代碼內(nèi)容發(fā)布,稍后鏈接回復(fù)評審者

評論回復(fù)鏈接

當(dāng)所有人覺得都沒有問題的時(shí)候,就選中刪除源分支,點(diǎn)擊合并請求


合并分支

合并以后在代碼里面,提交歷史里面,分支就合并在dev分支里面了
代碼歷史里提交分支已合并
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容