Git 分支與合并
一次提交的對象數據
多次提交后形成指向上次的指針
分支是指向一個commit對象的一個 可變指針
master是分支的默認名字,指向最后一次commit對象的指針
創建分支就是創建分支指針
head指針指向當前工作目錄
為分支合并自動識別出最佳的同源合并點
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 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!