git笔记 —— git 分支

git 分支

git 的分支,其实本质上仅仅是指向提交对象的可变指针

什么是提交对象:查看

要明白的核心要点是,分支本质是指针。

创建分支

创建分支其实是在创建一个指向当前提交对象的指针。

git branch testing // 创建名为testing 的分支
git checkout -b  //创建并切换分支
git switch -c  //创建并切换分支  switch 命令2.24.1才支持

查看各个分支的指向

git log --oneline --decorate 
git log --oneline  // 在高版本git不需要 --decorate 操作了。

切换分支

git checkout branchName
git switch master // 切换到master switch 命令2.24.1才支持

查看当前分支结构

git log --graph --all // --all是用来显示所有分支,

合并分支

git merge 
git merge --no-ff -m "merge with no-ff" dev // 禁用Fast forward 合并

分支管理

git branch // 列出分支
git branch -v //列出所有分支的上次提交

git branch -d testing //删除分支,
git branch -D testing //当 testing分支中有未合并的提交时,强制删除分支

远程分支

git ls-remote origin    //获取远程分支列表

与给定的远程仓库同步数据

git fetch 

在远程跟踪分支之上建立分支

git checkout -b serverfix origin/serverfix

跟踪远程分支

git checkout --track origin/develop // 本地新增 develop分支并跟踪远程 develop分支
git checkout serverfix // 如果远程有serverfix分支,且本地无此分支,会自动跟踪

查看设置的所有跟踪分支

git branch -vv

清理无效的远程分支

git remote prune origin

变基(rebase)

文档
你可以使用 rebase 命令将提交到某一分支上的所有修改都移至另一分支上,就好像“重新播放”一样。

rebase是用来合并分支的,当在两个不同的分支上都做了修改,可以使用rebase将一个分支上的修改合并到另外一个分支上。

将experiment rebase 到 master上

git checkout experiment
git rebase master 

过滤部分分支

git rebase --onto master server client // client中过滤掉 server的部分,rebase到master

一句话 rebase:使用 git rebase 命令可以直接将主题分支变基到目标分支

git rebase master server

参考:Pro Git 第二版 git 分支

你可能感兴趣的:(git笔记 —— git 分支)