Git版本管理 分支管理

2021-08-10 16:33:22 字數 2241 閱讀 2792

一、分支

#檢視分支,輸出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 回到...