Git 分支與合并

jopen 11年前發布 | 77K 次閱讀 Git 版本控制系統

一次提交的對象數據
Git 分支與合并
多次提交后形成指向上次的指針
Git 分支與合并

分支是指向一個commit對象的一個 可變指針   
master是分支的默認名字,指向最后一次commit對象的指針
創建分支就是創建分支指針
head指針指向當前工作目錄


Git 分支與合并
為分支合并自動識別出最佳的同源合并點

Git 分支與合并

git clone url #克隆新的版本庫
git init 
git pull repo_name #有關聯的遠程庫,抽取并和本地合并
git fetch remote_repo_name #抽取并新建分支



#在當前commit對象上新建分支   指針head
#head指向正在工作中的本地分支的指針(別名)
#不會切換到新建的分支上
git branch branch1

#切換分支將head指向branch1
git checkout branch1 

#工作流程卡
#在不同的分支里反復切換,并在時機成熟時把他們合并到一起
#git的分支實際是一個包含所指向對象校驗和的文件(40個字符長度SHA-1字串)

#分支的新建和合并
#0、自己工作分支mybranch,工作的好好的 

#1、突然有新需求,先切換到生產環境分支product;
git checkout product

#2、為新需求新建分支branch_pack,切到其中,并在其中編碼,直到通過測試用例
# -b 新建分支并切換到其上
git checkout -b issueXXXX 

#3、切換到生產環境分支product,將2中的開發工作分支branch_pack合并進來,然后推送到生產服務器上
git checkout product
# 合并
git merge branch_pach
#沖突解決,merge失敗時很可能因對同一文件的同時更改,所以必須手動人工解決 取舍代碼,確認沖突解決后需要把沖突文件 git add到staged area,運行git status查看所有狀態確保無誤后再git commit提交,注釋好沖突為什么這么解決

git push 遠程倉庫名  本地倉庫名

#分支刪除
git branch -d branch_pach

4、切換到mybranch繼續自己的工作
git checkout mybranch

#切換分支最好沒有待提交的文件,即stage area是清潔的
#查看各個分支最后一個提交對象的信息
git branch -v
git branch --merge/no-merged
#查看哪些分支已被并入當前分支(譯注:也就是說哪些分支是當前分支的直接上游



#給分支生成patch文件可以給
git format-patch 


#把本地名為serverfix的分支推送到遠程origin庫的awesomebranch分支
git push origin serverfix:awesomebranch 

#跟蹤遠程分支 從遠程分支checkout出的本地分支成為  跟蹤分支
git checkout -b sf origin/serverfix
git checkout --track origin/serverfix

#刪除遠程分支
git push origin :serverfix 

git兩種開發分支方法
長期分支:一個主分支保持穩定代碼,其余多個開放分支
特性topic分支:多個短期單一功能的分支

#給當前文件 打特定版本標簽
git tag -a  beta0.1 -m "some 注釋"

#回退到某個tag
git tag beta0.1

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!