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

一、 前提信息 (入職時(shí)從公司獲取):
  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)目主庫 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 代碼庫克隆到個(gè)人本地工作電腦git clone http://git.yjf.tech/sclcoder/aita3.git 這一步驟會(huì)在本地當(dāng)前目錄創(chuàng)建目錄 aita3,內(nèi)容是 gitlab服務(wù)器上個(gè)人名下 fork庫的克隆(包含所有分支),我們稱之為本地工作庫

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

    cd aita3
    git remote add upstream http://git.yjf.tech/dev/aita3.git
    git remote -v  // 查看遠(yuǎn)程 源庫,和 上游庫信息
    
  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 出來成為本地分支 dev
    git checkout -b dev remotes/origin/dev ;

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

  2. 將拉到本地的上游庫最新代碼合并到本地當(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庫
    git push

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

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

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

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

  3. 項(xiàng)目主庫審批人 review 代碼和審批 merge request
    項(xiàng)目主庫中待審批 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)程代碼庫增加分支(例如backup分支),自己遠(yuǎn)程庫已經(jīng)fork對(duì)應(yīng)的遠(yuǎn)程庫代碼了,也就是缺少backup分支,自己本地庫也缺少backup分支,可以如下操作
  git fetch upstream  (遠(yuǎn)程代碼庫)
  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)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,443評(píng)論 6 532
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,530評(píng)論 3 416
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,407評(píng)論 0 375
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,981評(píng)論 1 312
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 71,759評(píng)論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,204評(píng)論 1 324
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,263評(píng)論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,415評(píng)論 0 288
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,955評(píng)論 1 336
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 40,782評(píng)論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 42,983評(píng)論 1 369
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,528評(píng)論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,222評(píng)論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,650評(píng)論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,892評(píng)論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 51,675評(píng)論 3 392
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 47,967評(píng)論 2 374

推薦閱讀更多精彩內(nèi)容

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