目录
一、分支概念:
二、 本地库分支管理:
1. 查看分支情况:
命令1:git branch
2. 新建分支
命令1: git branch <分支名>
命令2: git branch <新建分支名> <源分支名>
命令3:git switch -c <分支名>
编辑
命令4:git checkout -b <分支名>
3. 切换分支
命令1: git switch <分支名>
命令2: git checkout <分支名>
4. 删除分支
命令1: git branch -d <分支名>
5. 修改本地分支
三、远程库分支管理
1.查看分支情况:
命令1: git branch -r
命令2: git remote show <远程库名>
2.新建远程分支
方法1:在本地新建一个分支后,推送到远程库。所以需要关联远程库和本地库
3. 删除远程库分支
命令1: git push <远程库名> --delete <分支名>
四、 关联本地库和远程库
1. 查看本地和远程库的关联信息
命令1: git remote -v
命令2: git branch -vv
命令3: git remote show <库名>
命令4: cat .git/cinfig
2. 关联本地库和远程库
3. 删除远程库
五、本地库和远程库分支的关联
1. 查看本地分支和远程分支的关联情况
命令1: git remote show <远程库名>
命令2: git branch -vv
命令3: cat .git/config
2. 关联本地分支和远程分支
命令1: git checkout -b <本地分支> <远程分支>
命令2:git branch -u origin/<分支名>
命令3: git branch --set-upstream-to=origin/ <本地branch>
命令4: git push -u origin <分支名>
可以看成是当前工作目录的副本。通常就是基于主线master(创建本地库时默认的),创建一个分支(副本)。然后在分支上开发,避免影响主线master的代码。
# 查看分支情况, 只有当前分支的所有名字
git branch
# 查看分支情况, 还有关联信息,版本信息
git branch -vv
# 还有很多参数, 实现不同内容
# --upset-upstream
基于当前的分支,新建一个分支(副本)
git branch <分支名>
例如: 在dev分支上,基于 branch_3 , 新建 branch_1
基于当前分支,新建一个分支(副本),并切换到新建的分支上
git switch -b <分支名>
和git switch -b 一样。 基于当前分支,新建一个分支(副本),并切换到新建的分支上
远程库即中心库:代码统一存放中心。
常用的代码托管平台有: github,gitlab,gitee
远程库和本地库一样,也是可以创建分支。
git branch -r
这个命令查看的信息,还有远程库信息,本地分支的push配置项值
git remote show <远程库名>
# 例如默认的远程库名是origin
git remote show origin
关联方法间下文的第四章
git push <远程库名> <本地分支名>
# 因为 默认库名是 origin。 所以常用
# 分支名不用带库名
git push origin <分支名>
演示效果:
4. 更新远程库的分支信息(刷新)
git remote update origin --prune
前提条件: 你在github或者其他代码托管平台中创建了项目(即远程库)。
远程库名建议和本地开发的项目名一致
很明显,本地库和远程库之间的通信需要知道各自的地址吧,就需要建立本地库和远程库之间的联系。
查看分支情况, 包括远程库分支和本地库分支的关联情况。 里面也有远程库的信息。
git branch -vv
git remote show origin
git remote add <库名>
远程库一般就叫做 origin。 可以叫其他的,但是默认大家都是用origin。
所以默认的命令是: git remote add origin <远程库地址>
git remote add origin
git地址通常是SSH 或者HTTP。 公司常用HTTP。
ssh地址格式:git@托管平台:<你的用户名>/<远程项目名>.git
[email protected]:jungun/git_skills.git
HTTP地址格式:
https://gitee.com/jungun/git_skills.git
添加演示:
删除远程库和本地库的关联关系: git remote rm <库名>
git remote rm <库名>
例如删除origint这个远程库
本地库和远程库分支建立了关联后,两者间的交互动作,例如:pull,push。进行交互时就不用指定各自的地址。即直接 git push, git pull就可以从远程库分支拉去代码到本地分支了,也方便后续的版本控制和回溯。
创建一个本地分支,并和指定的远程分支关联。
若是有报错
fatal: 'origin/master' is not a commit and a branch 'branch_1' cannot be created from it
是因为本地库创建分支时,是基于远程库分支的,所以需要进行网络交互。执行即可
git fetch origin
关联当前本地分支和指定的远程分支
示例:
指定本地分支和指定远程分支关联上
示例: 将本地分支 branch_new 关联上远程分支 origin/test2
将当前分支的内容推送到 远程分支,并建立关联
总结:
git checkout -b 用于在新建本地分支时,直接关联上远程分支。常基于稳定的远程代码分支,例如远程master,或dev分支
git push -u, git branch -u 都是在本地开发后,发现没有关联远程分支,或者原有的关联分支不合理,需要变动时使用,只能更改当前分支的关联情况。例如基于本地库分支checkout开发完毕后,要推送到指定的远程分支。
git branch --set-upstream-to 和git push -u ,git branch -u类似,不过更为灵活,不限于当前的本地分支。
将本地分支代码推送到远程库分支标准格式是: git push origin <分支名>
git push origin <分支名>
如果本地分支已经和远程分支建立了关联,则直接 git push
git push
pull类似。
下文:准备总结下分支间的操作和管理策略