git分支相关操作

git本地分支与远程分支的新建,删除,合并操作…

新建分支

本地分支重命名

将当前分支名称修改为main:

1
git branch -M main

远程新建分支

远程新建分支,本地pull即可。

本地新建分支

从master分支的最新节点新建分支dev

1
2
3
4
5
6
7
git checkout master # 切换到master分支
git pull # pull最新的节点,从最新节点新建
git branch dev # 新建分支dev
git checkout dev # 切换到新分支dev
git push origin dev # 同步新分支到远程 origin/dev
git branch -a # 查看
git remote show origin # 查看

从远程网页上可以看到新建的分支dev。

删除分支

本地删除并更新到远程

项目中经常使用分支,以下介绍在本地和远程删除分支。删除分支dev-demo。

1
2
3
git checkout main
git push origin --delete branch-name
git branch -d branch-name

以下详细介绍每条指令的意思:

  • 切换到master分支;

    1
    git checkout master
  • 查看已有的本地及远程分支;

    1
    2
    git branch -a
    git remote show origin
  • 删除远程分支;

    1
    git push origin --delete dev-demo
  • 删除后,再次查看分支情况;

    1
    git branch -a
  • 删除本地分支;

    1
    git branch -d dev-demo

完毕。登录github网页可以看到,dev-demo分支已删除。

远程删除分支更新到本地

网页上删除分支后,同步到本地。

1
2
3
4
git pull
git remote show origin
git remote prune origin
git branch -d branch-name

以下详细说明介绍:

  • 首先,查看本地分支和追踪的情况:

    1
    2
    git pull
    git remote show origin
  • 发现一些远程已经删除的分支还在显示,使用一下命令同步删除,即删除本地远程分支:

    1
    git remote prune origin
  • 最后删除本地分支:

    1
    git branch -d delete-branch-name

合并分支

1.开发分支dev代码合并到master分支

1
2
3
4
5
6
7
git checkout dev
git pull
git checkout master
git pull # 如果master分支有其他人改动,pull最新代码
git merge --no-ff dev # no fast forward合并(推荐使用)
或 git merge dev # fast forward合并
git push -u origin master
  • no fast forward合并方式,新建了一个commit。保留原有分支dev提交;
  • faster forward合并方式,不新建commit,删除原来分支dev,dev的提交记录嵌入到master分支上;

2.master分支代码改动,更新到开发分支dev上

1
2
3
4
5
6
7
git checkout master
git pull
git chekcout dev
git pull # 如果dev分支有其他人改动,pull最新代码
git merge --no-ff master # no fast forward合并(推荐使用)
或 git merge master # fast forward合并
git push -u origin dev

强制更新分支到远程指定分支的最新代码

git本地即使有修改也强制更新。放弃本地的修改和提交,强制使用远程分支的最新提交。

  1. 先切换到指定分支,因为不管仓库目前处在什么状态,都是可以 checkout 的;

    1
    git checkout dev
  2. 从远程仓库拉最新的代码到本地;

    1
    git fetch --all
  3. 把 HEAD 指向指定分支;

    1
    git reset --hard origin/dev
  4. 在指定分支 git pull, 查看是否已切换到指定分支并且是最新版本.

    1
    git pull