Git工作流程及操作指南

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

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

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

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

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

z:0-49 用來(lái)解release分支中的bug用,50-99用來(lái)在master分支做需求用

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

基于發(fā)版到用戶(hù)手中的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分支:在該分支上開(kāi)發(fā)新的需求。

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

release_1_y_0分支:當(dāng)新開(kāi)發(fā)的需求滿(mǎn)足當(dāng)期開(kāi)發(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)需要開(kāi)發(fā)某個(gè)大型需求,周期較長(zhǎng)時(shí),需要基于master分支再單獨(dú)拉一個(gè)分支開(kāi)發(fā),待穩(wěn)定后合入master分支。

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

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

2,善于利用.gitignore文件,屏蔽由IDE工作產(chǎn)生的臨時(shí)文件,原則上git倉(cāng)庫(kù)只跟蹤源代碼文件。

3,盡量使用git命令行方式,避免使用GUI客戶(hù)端。

## 四、Git開(kāi)發(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)端倉(cāng)庫(kù)生成ssh公鑰

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

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

(4)如果遠(yuǎn)端已有倉(cāng)庫(kù),克隆到本地

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

(5)如果遠(yuǎn)端沒(méi)有倉(cāng)庫(kù),需要在本地建立倉(cāng)庫(kù)并同步至遠(yuǎn)端

1,首先在遠(yuǎn)端建立一個(gè)倉(cāng)庫(kù),例如倉(cāng)庫(kù)地址為:

??????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次提交之前,以此類(lèi)推,回退到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推送到線(xiàn)上

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

(11)切換到分支A開(kāi)發(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)來(lái)修改。

(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)需要切換到其他分支開(kāi)發(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開(kāi)始創(chuàng)建新分支,需加上新分支名字,如下:

git checkout commit_id -b NewBranchName

最后編輯于
?著作權(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)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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

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