git分支

2019-11-29

创建分支

#创建分支
git branch [branch]

#创建分支并切换到分支上
git switch -c [branch]

#新建一个分支,指向指定commit
git branch [branch] [commit]

# 新建一个分支,指向某个tag
git checkout -b [branch] [tag]

# 新建一个分支,与指定的远程分支建立追踪关系
git branch --track [branch] [remote-branch]

# 在本地创建一个分支并跟远程仓库分支关联起来
git checkout -b [branch] [origin]/[branch]

删除分支

#删除分支
git branch -d [branch]

#删除远程分支
git push origin --delete [branch]

分支切换

#切换分支
git switch 分支名

# 切换到指定分支
git checkout [branch]

本地分支与远程分支关联

# 建立追踪关系,在现有分支与指定的远程分支之间
git branch --set-upstream [branch] [remote-branch]

查询分支

#查询所有本地分支
git branch

#列出所有远程分支
git branch -r

#列出所有本地分支和远程分支
git branch -a

分支合并

#合并分支(将指定分支的内容合并到当前分支上)
git merge [branch]

#合并分支时生成一个新的commit,--no-ff:不直接提交 -m:描述
git merge --no-ff -m "merge with no-ff" dev


#查看分支合并图
git log --graph

合并指定commit

#选择一个commit,合并进当前分支
git cherry-pick [commit]
git cherry-pick -e -n [commit]

# -e git cherry-pick将允许您在提交之前编辑提交消息
# -n git cherry-pick会自动创建一系列提交。-n将必要的更改应用到选择每个命名提交的工作树和索引中,而不进行任何提交

获取他人远程分支内容

// 取回特定分支的更新但不合并到当前分支
git fetch origin dev

//取回更新后,会返回一个FETCH_HEAD ,指的是某个branch在服务器上的最新状态,可以在本地通过它查看刚取回的更新信息
git log -p FETCH_HEAD

// 在本地创建一个dev分支并跟远程仓库dev分支关联起来
git checkout -b dev origin/dev

// 把dev分支内容拉取到本地
git pull origin dev

 

{/if}