git工作流程(團(tuán)隊(duì))

一、 前提信息 (入職時(shí)從公司獲?。?/h5>
  1. 獲取賬號(hào)和郵箱
    公司郵箱 :http://mail.yjf.tech/sclcoder@yjf.tech/***
    GitLab 個(gè)人賬號(hào) : git.yjf.tech:sclcoder/***
二、 初始設(shè)置 (一次性設(shè)置工作)
  1. 本地個(gè)人工作電腦 git 全局性配置
    git config --global user.name "sclcoder"
    git config --global user.email "sclcoder@yjf.tech"

  2. 使用 GIT GUI help 菜單中 Show SSH Key 菜單項(xiàng)對(duì)話框按鈕 Generate Key 生成一對(duì)公鑰私鑰;
    這一對(duì)公鑰私鑰用于git 命令行向gitlab服務(wù)器推送文件時(shí)使用;
    生成的公鑰私鑰文件保存在工作站當(dāng)前用戶的目錄下 id_rsa 是私鑰, id_rsa.pub 是公鑰;

  3. 將生成的SSH Key 的公鑰文本添加到gitlab服務(wù)器個(gè)人用戶profile中
    GitLab 上個(gè)人用戶 profile中 增加一個(gè)新的 SSH Key 的路徑是 : http://git.yjf.tech/profile/keys
    GitLab 上每個(gè)個(gè)人用戶profile 中可以增加多個(gè) SSH Key

三、針對(duì)每個(gè)參與的項(xiàng)目一次性的初始化工作(以參與的項(xiàng)目為 dev 組下的 aita3 為例):
  1. 登錄 gitlab fork 參與的項(xiàng)目主庫(kù) http://git.yjf.tech/dev/aita3.git 到自己名下 (這里以名字 sclcoder 為例),這一步驟會(huì)在自己名下生成項(xiàng)目,路徑類似于 http://git.yjf.tech/sclcoder/aita3.git , 其內(nèi)容復(fù)制自 http://git.yjf.tech/dev/aita3.git

  2. 將個(gè)人 fork 代碼庫(kù)克隆到個(gè)人本地工作電腦git clone http://git.yjf.tech/sclcoder/aita3.git 這一步驟會(huì)在本地當(dāng)前目錄創(chuàng)建目錄 aita3,內(nèi)容是 gitlab服務(wù)器上個(gè)人名下 fork庫(kù)的克隆(包含所有分支),我們稱之為本地工作庫(kù)

  3. 本地工作電腦當(dāng)前目錄切換到本地工作庫(kù),并添加遠(yuǎn)程項(xiàng)目主庫(kù)為 upstream

    cd aita3
    git remote add upstream http://git.yjf.tech/dev/aita3.git
    git remote -v  // 查看遠(yuǎn)程 源庫(kù),和 上游庫(kù)信息
    
  4. 本地工作電腦切換到工作分支 (如果當(dāng)前默認(rèn)分支已經(jīng)是工作分支,則本步驟不需要,一般情況下當(dāng)前默認(rèn)分支是 master)
    下面假設(shè)當(dāng)前默認(rèn)分支是 master,但目標(biāo)工作分支是 dev,所以需要將 remotes/origin/dev checkout 出來(lái)成為本地分支 dev
    git checkout -b dev remotes/origin/dev ;

四 、項(xiàng)目主庫(kù)代碼同步到本地工作庫(kù)和遠(yuǎn)程fork庫(kù)
  1. 在需要獲取主庫(kù)最新代碼時(shí)候從遠(yuǎn)程上游主庫(kù)獲取主庫(kù)最新代碼
    git fetch upstream // 從upstream中獲取最新代碼,但是不做任何合并動(dòng)作,此命令不影響當(dāng)前本地工作分支

  2. 將拉到本地的上游庫(kù)最新代碼合并到本地當(dāng)前工作分支

    git merge upstream/dev // 將upstream分支dev合并到本地當(dāng)前分支
    

    // 注意 : 上面命令假設(shè)本地分支為 dev 并且對(duì)應(yīng)到 upstream/dev, 如果本地分支為 master 并且對(duì)應(yīng) upstream/master, 對(duì)應(yīng)命令行應(yīng)該為 git merge upstream/master

  3. 將本地最新的代碼推送到遠(yuǎn)程個(gè)人fork庫(kù)
    git push

五、 個(gè)人 fork庫(kù)代碼同步到項(xiàng)目主庫(kù)

一旦本地個(gè)人工作庫(kù)中編輯了一些內(nèi)容,經(jīng)過(guò) commit/push 到遠(yuǎn)程個(gè)人fork之后,需要將遠(yuǎn)程個(gè)人fork庫(kù)代碼同步到項(xiàng)目主庫(kù),其他人才能看到你最新的代碼變化,這一目的通過(guò)在遠(yuǎn)程個(gè)人 fork 庫(kù)中創(chuàng)建新的 merge request 并經(jīng)過(guò)項(xiàng)目主庫(kù)審批人審批通過(guò)完成;

  1. 遠(yuǎn)程個(gè)人fork庫(kù)中創(chuàng)建 merge request
    個(gè)人fork庫(kù)中創(chuàng)建 merge request 的地址類似于 : http://git.yjf.tech/sclcoder/aita3/merge_requests

  2. 將創(chuàng)建好的 merge request 發(fā)送給項(xiàng)目主庫(kù)審批人
    要發(fā)送的 merge request 使用其 URL 地址形式 : http://git.yjf.tech/dev/aita3/merge_requests/5

  3. 項(xiàng)目主庫(kù)審批人 review 代碼和審批 merge request
    項(xiàng)目主庫(kù)中待審批 merge request 列表的地址類似于 : http://git.yjf.tech/dev/aita3/merge_requests
    如果有多個(gè)待審批 merge request 的話,審批人在這個(gè)地址可以看到各個(gè) merge request,
    點(diǎn)開某個(gè) merge request (瀏覽器地址欄中URL類似于 : http://git.yjf.tech/dev/aita3/merge_requests/5 ) ,
    可以看到 ACCEPT MERGE REQUEST 按鈕,也可以進(jìn)行代碼 review

六、 如果遠(yuǎn)程代碼庫(kù)增加分支(例如backup分支),自己遠(yuǎn)程庫(kù)已經(jīng)fork對(duì)應(yīng)的遠(yuǎn)程庫(kù)代碼了,也就是缺少backup分支,自己本地庫(kù)也缺少backup分支,可以如下操作
  git fetch upstream  (遠(yuǎn)程代碼庫(kù))
  git checkout backup (切換本地backup分支,不存在則創(chuàng)建一個(gè))
  git merge upstream/backup (遠(yuǎn)程upstream合并到本地backup)
  git push origin backup:backup 提交本地backup分支 作為 origin 遠(yuǎn)程的backup分支(git push origin test:master // 提交本地test分支 作為 遠(yuǎn)程的master分支)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • 1. 安裝 Github 查看是否安裝git: $ git config --global user.name "...
    Albert_Sun閱讀 13,863評(píng)論 9 163
  • 聲明:這篇文章來(lái)源于廖雪峰老師的官方網(wǎng)站,我僅僅是作為學(xué)習(xí)之用 Git簡(jiǎn)介 Git是什么? Git是目前世界上最先...
    橫渡閱讀 4,149評(píng)論 3 27
  • 流水和下雨是不一樣的 我們愛流水 是因?yàn)榭梢杂勺约簺Q定選取 我們討厭下雨 是因?yàn)闊o(wú)法選擇并會(huì)打擾自己 雖然都需要 ...
    一度一閱讀 183評(píng)論 0 0
  • 我覺(jué)得考公務(wù)員沒(méi)用我覺(jué)得我大學(xué)學(xué)的東西沒(méi)用我覺(jué)得我的專業(yè)沒(méi)用 10月11日蛻變之旅---什么才是有用 首先我想問(wèn)一...
    楠ancy閱讀 503評(píng)論 0 1
  • 第2次作業(yè)完成的時(shí)間稍微慢了些,現(xiàn)在才交。前面幾天有點(diǎn)事,就沒(méi)有時(shí)間了,這幾天才慢慢完成。在畫的過(guò)程中,毛...
    藍(lán)粉筆頭閱讀 516評(píng)論 4 1

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