一、分支
#檢視分支,輸出master前帶*
$ git log --oneline --graph
#建立分支
$ git branch 分支名(這裡舉例,分支名為dev)
#刪除分支
$ git branch -d 分支名
# 檢視當前分支,* 代表了當前的 head 所在的分支
$ git branch
#把 head 切換到dev 分支,此時dev前帶*
$ git checkout dev
#直接建立和切換到新建的分支
$ git checkout -b dev
# "-am": add 所有改變 並直接 commit。***檔案必須在git管理庫中,新檔案不能使用***
$ git commit -am "change 3 in dev"
# 切換至 master 才能把其他分支合併過來,****切換很重要****
$ git checkout master
# 將 dev merge 到 master 中,確定回到master上(檢視:master上帶訊號)
$ git merge dev
#注意:直接 git merge dev,log 中也不會有分支的圖案.採取 --no-ff 這種方式保留 merge 的 commit 資訊.
$ git merge --no-ff -m "keep merge info" dev # 保留 merge 資訊
#檢視分支
$ git log --oneline --graph
二、merge 分支衝突
主分支和分支上都有改變,git 發現在 master 和 dev 上的版本是不同的, 所以提示 merge 有衝突. 具體的衝突, 開啟 master上的檔案就能看到。我們需要手動修改conflict 的部分,然後commint.
$ git commit -am "solve conflict"
三、rebase 分支衝突
!!! 只能在自己的分支中使用 rebase, 和別人共享的部分是不能用 !!!, 如果用了, master 的歷史會被 rebase 改變, master 當中別人提交的 內容就被無情地修改掉了。如果你不小心弄錯了。 用在 reset 這一節 提到的 reflog 恢復原來的樣子。
錯誤示範:rebase了主分支
$ git rebase dev #主分支基於dev分支進行修改
$ git add demo.txt
$ git rebase --continue
#再來看看 master 的 log:
$ git log --oneline --graph
# 輸出
* c844cb1 change 4
in master # 這條 commit 原本的id=3d7796e, 所以 master 的歷史被修改
* f7d2e3a change 3
in dev # rebase 過來的 dev commit
四、臨時修改 (stash)
$ git checkout dev #假設現在在 dev 分支上改**
$ git stash #將這些改變暫時放一邊,沒有提交
$ git checkout -b boss #建立另乙個 branch 用來完成老闆的任務
#提交任務到master
$ git commit -am "job from boss"
$ git checkout master
$ git merge --no-ff -m "merged boss job" boss #可能有衝突解決,因為boss分支是從dev分支中分出來的,手動在檔案中將dev的部分刪掉
#提交修改衝突後的檔案,檢視master的log
$ git commit -am "solve conflict"
$ git log --oneline --graph
#拿回快取區的檔案
$ git checkout dev
$ git branch -d boss #任務完成,可以刪除boss分支
$ git stash list # 檢視在 stash 中的快取
$ git stash pop #拿回快取區檔案
版本管理 玩轉git 分支管理
接下來我們詳細地介紹一下。檢視所有分支 這樣說明只有master分支,且當前處在master分支上,前面的 號代表當前處於的位置。建立分支 git brand wechat這時我們檢視分支 這時就有了兩個分支,但是我們仍然處於master分支上。接下來我們切換分支。現在我們就處於wechat分支上了...
Git進行分支版本管理
1.建立倉庫 git init git add git commit m first commit.2.建立分支 git branch version1.0 其中 version1.0是分支的名字,可以替換為任何名稱,例如master02 3.檢視當前分支 git branch 可以檢視當前擁有的所...
Git基礎 版本管理 分支
git init 初始化git倉庫 git status 檢視檔案狀態 git add 檔案列表 追蹤檔案 放入暫存區 git commit m 提交資訊 向倉庫中提交 git log 檢視提交記錄 或者 git log pretty oneline 只檢視版本號 git reset hard 回到...