在一個Git倉庫內加缘、我們可以創(chuàng)建多個和工作于多個分支沿侈,各個分支之間是隔離的斗忌。也就是在某個分支上的任何修改质礼、暫存、提交都不會影響到其他分支 织阳。下面是分支的相關操作
默認項目都會在master分支上進行眶蕉。
通過git branch
來查看分支
創(chuàng)建并切換到新分支:git checkout -b newBranch
在新分支對file進行一些修改之后進行暫存、提交唧躲。
然后切換回主分支master會看到master分支上的代碼并沒有被修改造挽。然后我們要把newBranch分支的修改合并到master上:
git merge newBranch
此時再看master分支上的代碼就和newBranch一樣了
刪除分支:
git branch -d newBranch
如果再修改newBranch之后又在master上進行了一些修改,此時合并時會提示沖突弄痹。然后可以手動在文件中按照提示自行修改
還有另外一種合并方法饭入。和merge差不多,但是沒有merge好用肛真。如下:
git rebase newBranch
這時候如果有沖突的話谐丢,在手動修改了沖突文件之后執(zhí)行git branch
查看時,會發(fā)現(xiàn)不在任何分支上蚓让。此時我們需要提交修改沖突之后的文件乾忱,然后再執(zhí)行git rebase --continue
來繼續(xù)完成分支合并
- 撤銷git-rebase
還是通過git reflog
來實現(xiàn)
執(zhí)行git reflog
可以看到所有的git操作記錄。
我們可以通過git reset --hard head@{3}
回到某次提交--hard
參數(shù)意味著不僅修改倉庫當前修訂位置历极,也會同時修訂文件來覆蓋工作區(qū)和暫存區(qū)