Git(三): git的分支操作
git的分支操作
软件项目中启动一套单独的开发线的方法,可以很好的避免版本兼容开发的问题,避免不同版本之间的相互影响,封装一个开发阶段,解决bug的时候新建分支,用于对该bug的研究;
git中跟分支相关的命令
- git branch
# 列出所有本地分支
git branch
# 列出所有远程分支
git branch -r
# 列出所有本地分支和远程分支
git branch -a
# 新建一个分支,并切换到该分支
git checkout -b [branch]
# 新建一个分支,指向指定commit
git branch [branch] [commit]
# 新建一个分支,与指定的远程分支建立追踪关系
git branch --track [branch] [remote-branch]
# 切换到上一个分支
git checkout -
# 建立追踪关系,在现有分支与指定的远程分支之间
git branch --set-upstream [branch] [remote-branch]
# 删除分支
git branch -d [branch-name]
# 删除远程分支
git push origin --delete [branch-name]
git branch -dr [remote/branch]
# 可以查看本地分支对应的远程分支
git branch -vv
- git checkout
- 操作文件
git checkout filename 放弃单个文件的修改
git checkout . 放弃当前目录下的修改
-
- 操作分支
git checkout 分支名 切换分支
git checkout -b master 如果分支存在则只切换分支,若不存在则创建并切换到master分支,repo start是对git checkout -b这个命令的封装,将所有仓库的分支都切换到master,master是分支名
如果在分支上面对文件进行修改之后,没有commit就切换到另外一个分支b,这个时候会报错,因为没有commit的文件在切换分支之后会不覆盖,所以Git 报错提示;
git checkout -f 分支名 强制切换到分支,如果当前有为提交的变更,会直接丢弃,-f 参数一定要非常非常小心使用,一般情况下不建议使用,除非真的要强制去执行;
- cherry-pick合并操作
# 单个commit合并
git cherry-pick [commit]
# 多个连续commit合并,不包含第一个commit,即(commit, commit]
git cherry-pick [commit]..[commit]
# 多个连续commit合并,包含第一个commit,即[commit, commit]
git cherry-pick [commit]^..[commit]