GIT:常用分支相关命令(git branch)

在开发过程中一般会用到Git进行版本管理,操作本地分支并与远程仓库交互是非常常见的操作。


 

branch分支

是指在开发主线中分离出来的,做进一步开发而不影响到原来的主线。

Git存储的不是一系列的更改集,而是一系列快照,当你执行一次commit时,git存储一个commit对象,它包含一个指针指向你当前需要提交的内容的快照。

master分支是在git init命令运行时默认创建一个分支,并命名为master。

 

查看分支

git branch                    // 列出本地已经存在的分支,当前分支会用 * 标记

git branch -r                 // 查看远程仓库的分支列表

git branch -a                 // 查看所有分支列表(包含本地和远程分支)

git branch -vv                // 查看本地分支对应的远程分支

git branch -v                 // 查看一个分支的最后一次提交

git branch --merged           // 查看哪些分支已经合并到当前分支 

git branch --no-merged        // 查看所有未合并工作的分支

创建分支

git branch dev            // 创建名为dev的分支(创建分支时需要是最新的环境,创建分支但依然停留在当前分支上)

提交本地分支

git push origin dev

删除分支

git branch -d dev            // 删除本地dev分支

git branch -D dev            // dev分支还没合并入主分支,所以要用-D参数才能删除掉

git push origin --delete dev      // 删除远程dev分支

批量删除分支

# 删除(当前分之外)*已合并* 的所有分支
git branch | xargs git branch -d
# *强制* 删除(当前分之外)的所有分支
git branch | xargs git branch -D
# 删除(当前分之外)*包含指定字符* 的所有 *已合并* 的分支
git branch | grep "dev*" | xargs git branch -d
# *强制* 删除(当前分之外)*包含指定字符* 的所有分支
git branch | grep "dev*" | xargs git branch -D
  • "git branch" - 列出本地已经存在的分支,当前分支会用 * 标记

  • " | " - 管道命令,用于将一串命令串联起来,前面命令的输出可以作为后面命令的输入
  • "xargs" - 用于给命令传递参数的一个过滤器,也是组合多个命令的一个工具
  • "grep" - 搜索过滤命令。使用正则表达式搜索文本,并把匹配的行打印出来
  • " * " - 通配符,如 "dev*" 指所有包含 "dev" 开头的匹配字符串," dev-1 "、" testdevv "、" devvv " 等

更新本地的远程分支列表

git remote update origin --prune

重命名分支

git branch -m oldName newName     // 给分支重命名

切换分支

/* 操作文件 */

git checkout fileName          // 放弃单个文件的修改

git checkout .              // 放弃当前目录的修改

/* 操作分支 */

git checkout master           // 将分支切换到master

git branch -b master          // 如果分支存在则只切换分支,若不存在则创建并切换到master分支,repo start是对git checkout -b这个命令的封装,将所有仓库的分支都切换到master,master是分支名,

/* 查看帮助 */

git checkout --help

拉取分支

git checkout dev              // 将远程分支dev拉取下来到本地dev分支

git pull dev                // 拉取远程分支dev中内容

git checkout -b test origin/test_remote         // 将远程分支test_remote拉取下来到本地test分支

git fetch origin            // 同步远程服务器的数据到本地

合并分支

/* 合并流程 */
git checkout test            // 切换到test分支

git pull                 // 从远程仓库拉取最新代码到本地test

git checkout dev           // 切换到当前分支 dev

git merge test             // 将test分支拉取下来的代码合并到dev

/* ----------- */

git merge --abort           // 如果git merge的时候出现冲突,可以执行这个命令取消merge。

git cherry-pick commit_id      // 将一个分支的commit_id提交合并到当前分支上,并舍弃另一个分支上的其他提交。

- END -

posted @ 2021-03-29 11:58  97z4moon  阅读(4117)  评论(0编辑  收藏  举报
Title