Git工作流程及操作指南

# 嵌入式組Git工作流程及操作指南

## 一蹂午、版本號(hào)定義

項(xiàng)目版本號(hào)定義由 x . y . z 三位組成

x:一代產(chǎn)品始終為1

y:發(fā)版到用戶手中的序號(hào)

z:0-49 用來解release分支中的bug用裙秋,50-99用來在master分支做需求用

舉例1(release 解bug分支版本號(hào) = 1.1.6):

基于發(fā)版到用戶手中的1.1.0版本release分支乡小,當(dāng)前解bug的版本為1.1.6

舉例2(master 需求主分支版本號(hào) = 1.1.58):

當(dāng)前做需求的的版本號(hào)為1.1.5

## 二猜敢、分支定義

master分支:在該分支上開發(fā)新的需求吐葱。

注:該分支上的版本號(hào)1.y.z 中z只能為50-99

release_1_y_0分支:當(dāng)新開發(fā)的需求滿足當(dāng)期開發(fā)任務(wù)時(shí)第喳,需要拉出一個(gè)release分支糜俗,分支根據(jù)上面的版本號(hào)定義命名,例如:release_1_1_0曲饱,release_1_2_0...等悠抹。后期就需要在該分支上進(jìn)行測(cè)試和Bug修復(fù),直到穩(wěn)定發(fā)版扩淀,最后合入master分支楔敌。

注:該分支上的版本號(hào)1.y.z 中z只能為0-49

feature_xxx分支:當(dāng)需要開發(fā)某個(gè)大型需求,周期較長時(shí)驻谆,需要基于master分支再單獨(dú)拉一個(gè)分支開發(fā)卵凑,待穩(wěn)定后合入master分支庆聘。

## 三、Git開發(fā)習(xí)慣約束

1勺卢,為了盡量避免多人開發(fā)時(shí)合代碼引起的風(fēng)險(xiǎn)伙判,在相應(yīng)的分支開發(fā)時(shí)需定時(shí)和遠(yuǎn)端git 倉庫同步,可采用fetch+rebase(或pull)方式黑忱。

2宴抚,善于利用.gitignore文件,屏蔽由IDE工作產(chǎn)生的臨時(shí)文件杨何,原則上git倉庫只跟蹤源代碼文件酱塔。

3,盡量使用git命令行方式危虱,避免使用GUI客戶端。

## 四唐全、Git開發(fā)操作指南

(1)配置你的git賬號(hào)信息

git config --global user.name "zhangqiang"

git config -global user.email "ucos_hqu@126.com"

(2)查看配置信息

git config --global --list

(3)為遠(yuǎn)端倉庫生成ssh公鑰

ssh-keygen -t rsa -C "zhangqiang" //生成密鑰文件

cat ~/.ssh/id_rsa.pub //將輸出的密鑰內(nèi)容復(fù)制到遠(yuǎn)端倉庫中即可

(4)如果遠(yuǎn)端已有倉庫埃跷,克隆到本地

git clone git@code.aliyun.com:zhangqiang/example.git

(5)如果遠(yuǎn)端沒有倉庫,需要在本地建立倉庫并同步至遠(yuǎn)端

1邮利,首先在遠(yuǎn)端建立一個(gè)倉庫弥雹,例如倉庫地址為:

??????git@code.aliyun.com:zhangqiang.qiang/test.git

2,在本地做如下操作:

??????git init

??????git remote add origin git@code.aliyun.com:zhangqiang.qiang/test.git

??????git add .

??????git commit -am "message"

??????git push -u origin master

(6)在本地建立分支A延届,并在遠(yuǎn)端也建立分支A

git checkout -b fenzhi-A

git push -u origin fenzhi-A

(7)刪除本地分支和遠(yuǎn)端分支

git branch -d fenzhi-A //刪除本地分支

git push origin --delete fenzhi-A //刪除遠(yuǎn)端分支

(8)從遠(yuǎn)端獲取一個(gè)本地不存在的分支

git fetch

git checkout -b fenzhi-A origin/fenzhi-A

git pull origin fenzhi-A:fenzhi-A

git checkout --track origin/fenzhi-A

(9)回退

git reset --hard HEAD^ ? ? ? ? //回退到上個(gè)版本的commit剪勿,并刪除當(dāng)前的commit

git reset --hard HEAD~3? ? ? // 回退到前3次提交之前,以此類推方庭,回退到n次提交之前

git reset --hard commit_id? ? // 退到/進(jìn)到 指定commit的sha碼

git push origin HEAD --force? //強(qiáng)推到遠(yuǎn)程

(10)tag命令

git tag //查看tag

git tag test_tag c80f83939a89659e51dc2a5fe183af384233 //在某個(gè)commit 上打tag

git push origin test_tag //本地tag推送到線上

git tag -d test_tag //本地刪除tag

(11)切換到分支A開發(fā)厕吉,并及時(shí)和遠(yuǎn)端同步分支A上新的動(dòng)態(tài)

git checkout fenzhi-A

git fetch

git rebase

(12)配置beyond compare為git的diff和merge工具

找到.gitconfig文件,并加入相應(yīng)內(nèi)容即可械念,具體操作如下圖:

在.gitconfig文件中添加紅色方框內(nèi)的配置信息头朱,配置信息中需根據(jù)你電腦上安裝的beyond compare路徑以及bc版本(1~4)來修改。

(13)使用beyond compare進(jìn)行diff

比較兩次commit的區(qū)別

git difftool --dir-diff b2c15be1f4e6dd0379a617b452

git difftool --dir-diff head

(14)使用beyond compare進(jìn)行merge

當(dāng)merge遇到?jīng)_突時(shí)可執(zhí)行g(shù)it mergetool命令進(jìn)行解沖突

(15)提交工作區(qū)中的改動(dòng)到緩存區(qū)中

git add file_name 或 git add .

(16)commit緩存區(qū)中的修改

git co8ed007cf218a82 62e30196e868bc84b1d3a1569dc127fb9fc13e84

比較上一次的提交和當(dāng)前工作區(qū)的區(qū)別mmit -m “提交信息”

(17)修改上次commit的備注信息

git commit --amend -m " new text"

(18)查看本地分支所追蹤的遠(yuǎn)端分支

git branch -vv

(19)當(dāng)需要切換到其他分支開發(fā)但本地工作區(qū)和緩存區(qū)還未commit時(shí)

git stash //保存工作區(qū)和緩存區(qū)的內(nèi)容到堆棧中

git stash pop //當(dāng)回到該分支時(shí)可用該命令恢復(fù)之前的工作

(20)如果想切換到之前提交的某個(gè)commit id版本去

git checkout commit_id

例:git checkout e0a0ad92215299de14b23197c04e5f570977db89

注意:如果需從當(dāng)前分支某一個(gè)commit開始創(chuàng)建新分支龄减,需加上新分支名字项钮,如下:

git checkout commit_id -b NewBranchName

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市希停,隨后出現(xiàn)的幾起案子烁巫,更是在濱河造成了極大的恐慌,老刑警劉巖宠能,帶你破解...
    沈念sama閱讀 218,607評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件亚隙,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡棍潘,警方通過查閱死者的電腦和手機(jī)恃鞋,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,239評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門崖媚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人恤浪,你說我怎么就攤上這事畅哑。” “怎么了水由?”我有些...
    開封第一講書人閱讀 164,960評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵荠呐,是天一觀的道長。 經(jīng)常有香客問我砂客,道長泥张,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,750評(píng)論 1 294
  • 正文 為了忘掉前任鞠值,我火速辦了婚禮媚创,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘彤恶。我一直安慰自己钞钙,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,764評(píng)論 6 392
  • 文/花漫 我一把揭開白布声离。 她就那樣靜靜地躺著芒炼,像睡著了一般。 火紅的嫁衣襯著肌膚如雪术徊。 梳的紋絲不亂的頭發(fā)上本刽,一...
    開封第一講書人閱讀 51,604評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音赠涮,去河邊找鬼子寓。 笑死,一個(gè)胖子當(dāng)著我的面吹牛世囊,可吹牛的內(nèi)容都是我干的别瞭。 我是一名探鬼主播,決...
    沈念sama閱讀 40,347評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼株憾,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼蝙寨!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起嗤瞎,我...
    開封第一講書人閱讀 39,253評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤墙歪,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后贝奇,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體虹菲,經(jīng)...
    沈念sama閱讀 45,702評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,893評(píng)論 3 336
  • 正文 我和宋清朗相戀三年掉瞳,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了毕源。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片浪漠。...
    茶點(diǎn)故事閱讀 40,015評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖霎褐,靈堂內(nèi)的尸體忽然破棺而出址愿,到底是詐尸還是另有隱情,我是刑警寧澤冻璃,帶...
    沈念sama閱讀 35,734評(píng)論 5 346
  • 正文 年R本政府宣布响谓,位于F島的核電站,受9級(jí)特大地震影響省艳,放射性物質(zhì)發(fā)生泄漏娘纷。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,352評(píng)論 3 330
  • 文/蒙蒙 一跋炕、第九天 我趴在偏房一處隱蔽的房頂上張望赖晶。 院中可真熱鬧,春花似錦枣购、人聲如沸嬉探。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,934評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至眷蜓,卻和暖如春分瘾,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背吁系。 一陣腳步聲響...
    開封第一講書人閱讀 33,052評(píng)論 1 270
  • 我被黑心中介騙來泰國打工德召, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人汽纤。 一個(gè)月前我還...
    沈念sama閱讀 48,216評(píng)論 3 371
  • 正文 我出身青樓上岗,卻偏偏與公主長得像,于是被迫代替她去往敵國和親蕴坪。 傳聞我的和親對(duì)象是個(gè)殘疾皇子肴掷,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,969評(píng)論 2 355

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

  • 安裝: windows安裝git-- msysgit是windows版的git,下載單獨(dú)的.exe按照默認(rèn)選項(xiàng)安裝...
    alceyp閱讀 694評(píng)論 0 0
  • git 使用筆記 git原理: 文件(blob)對(duì)象背传,樹(tree)對(duì)象呆瞻,提交(commit)對(duì)象 tree對(duì)象 ...
    神刀閱讀 3,773評(píng)論 0 10
  • 多種多樣的工作流使得在項(xiàng)目中實(shí)施Git時(shí)變得難以選擇。這份教程提供了一個(gè)出發(fā)點(diǎn)径玖,調(diào)查企業(yè)團(tuán)隊(duì)最常見的Git工作流痴脾。...
    JSErik閱讀 4,407評(píng)論 2 8
  • 了解 Linux 常見命令 在使用 git 前,建議事先熟悉一些常見的 bash 命令 進(jìn)入xxx目錄$ cd x...
    acc8226閱讀 608評(píng)論 0 1
  • 勇者從容滚朵,智者淡定。成熟飽滿的谷子總是低著頭前域,越是真正有內(nèi)涵和能力的人辕近,越是低調(diào)、沉著话侄、淡定從容亏推。 聽說,你想要讓...
    五月成長筆記閱讀 707評(píng)論 0 2