git分支管理

这篇具有很好参考价值的文章主要介绍了git分支管理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

git分支管理

1、本地仓库分支

查看分支

git branch
# 查看详细信息
git branch -v

查看所有分支(包括远程分支)

git branch -a

创建分支

git branch <name>

切换分支

git checkout <name>
# 或者
git switch <name>

创建+切换分支

git checkout -b <name>
# 或者
git switch -c <name>

删除本地分支

git branch -d <name> # 会在删除前检查merge状态(其与上游分支或者与head)。
git branch -D <name> # 是git branch --delete --force的简写,它会直接删除。

2、远程仓库分支

查看远程分支

git branch -r

新建远程分支

# 1)可以在gitlab、github、gitee等管理网站上手动新建分支。
# 2)本地推送,命令如下:
git push -u origin <本地分支name>:<远程分支name>
# 例如:
git push -u origin eee:fff
# 其中origin为远程仓库别名,eee为本地分支名称,fff为远程分支名称,
# 推送后本地分支eee和远程仓库分支fff自动建立关联关系。
# 也可以这样:
git push -u origin nnn
# nnn为本地分支名称,这样就会默认新建一个远程分支,名称为nnn。

删除远程分支

# 1)可以在gitlab、github、gitee等管理网站上手动删除分支。
# 2)本地删除远程分支:
git push origin --delete <远程分支name>
git push origin :<远程分支name>
# 例如:
git push origin --delete ccc  # 删除远程仓库ccc,origin为远程仓库别名。
git push origin :ddd # 删除远程仓库ddd。

3、建立本地分支与远程仓库分支关联关系

查看本地分支和远程分支关联情况:

git branch -vv

# 命令执行情况如下:
$ git branch -vv
* bug    5abc3e7 [origin/bbb] rm777
  dev    b61f60d [origin/dev] 888
  master b61f60d [origin/master] 888

# 第一列是本地分支,第三列是建立了关联关系的远程分支,本地分支和远程分支名称可以不一样。

将本地的分支和远程的分支进行关联,设置过关联之后我们只需要git push和git pull就可以更新和推送这个分支了,本地分支会自动推送到关联的分支,会方便很多。

本地分支与远程分支建立关联关系

(1)用 git checkout 命令关联

使用git checkout命令时,添加-b 参数,相当于创建了新分支后并进行分支切换。对于新创建的分支可以直接指定关联的远程分支:

# 拉取远程分支origin/branch到本地并创建一个新的关联分支
git checkout -b <本地分支名称> <远程仓库别名>/<远程分支名称>
# 命令执行情况如下:
$ git checkout -b ccc origin/bbb
Switched to a new branch 'ccc'
branch 'ccc' set up to track 'origin/bbb'.

ThinkPad@DESKTOP-BLPTGC0 MINGW64 /d/gittest/test (ccc)
$ git branch -vv
  bug    5abc3e7 [origin/bbb] rm777
* ccc    5abc3e7 [origin/bbb] rm777
  dev    b61f60d [origin/dev] 888
  master b61f60d [origin/master] 888
# 成功新建并切换到本地分支ccc,本地分支ccc和远程分支bbb建立了关联关系。
# 从上面的执行情况可以看出,一个远程分支可以关联多个本地分支。
# 这个地方的远程分支前面就要加上远程仓库的别名,中间以/隔开。

(2)用 git branch 命令关联

git branch命令本身就是操作分支的命令,借助--set-upstream-to 参数,就是来指定关联上远程分支的:

# 将本地newbranch分支与远端branch分支关联
git branch --set-upstream-to=<远程仓库别名>/<远程分支名称> <本地分支名称>
# 命令执行情况如下:
$ git branch --set-upstream-to=origin/bbb ddd
branch 'ddd' set up to track 'origin/bbb'.

ThinkPad@DESKTOP-BLPTGC0 MINGW64 /d/gittest/test (ccc)
$ git branch -vv
  bug    5abc3e7 [origin/bbb] rm777
* ccc    5abc3e7 [origin/bbb] rm777
  ddd    5abc3e7 [origin/bbb] rm777
  dev    b61f60d [origin/dev] 888
  master b61f60d [origin/master] 888
# 成功将本地分支ddd与远程仓库分支bbb建立了关联关系。
# 从上面的执行情况可以看出,一个远程分支可以关联多个本地分支。
# 这个地方的远程分支前面就要加上远程仓库的别名,中间以/隔开。

第二种方法,在当前分支下执行命令git branch -u 远程分支,表示将当前分支关联到远程分支上。

#在当前分支上执行以下命令
git branch -u 远程分支

(3)用 git push 命令关联

git push命令本身时推送远程分支的命令,借助--set-upstream 参数,可以指定关联上远程分支:

# 将本地分支上传到远端,同时关联newbranch和远端branch分支
git push --set-upstream <远程仓库别名> <本地分支名称>:<远程分支名称>
# 命令执行情况如下:
$ git push --set-upstream origin fff:fff
Total 0 (delta 0), reused 0 (delta 0), pack-reused 0
remote: Powered by GITEE.COM [GNK-6.4]
remote: Create a pull request for 'fff' on Gitee by visiting:
remote:     https://gitee.com/xxxxx/gittest/pull/new/xxxxx:fff...xxxxx:master
To https://gitee.com/xxxxx/gittest.git
 * [new branch]      fff -> fff
branch 'fff' set up to track 'origin/fff'.

$ git branch -vv
  bug    5abc3e7 [origin/bbb] rm777
* ccc    5abc3e7 [origin/bbb] rm777
  ddd    5abc3e7 [origin/bbb] rm777
  dev    b61f60d [origin/dev] 888
  fff    5abc3e7 [origin/fff] rm777
  master b61f60d [origin/master] 888
# 成功将本地分支fff的内容推送到远程分支fff上,并建立了关联关系。
# 这种方式不需要先建立远程分支,命令会自动创建远程分支,类似于以下命令:
git push -u origin eee:fff

通过git checkout方式和git branch方式建立本地分支与远程分支关联关系的前提是远程分支必须首先存在,不然会报错;而通过git push的方式不需要远程分支存在,会自动创建远程分支。git branch方式更为直接,将本地分支与远程分支关联好之后,就可以进行git pull 或git push 等操作了。

为了让本地知道远程有些分支已经删了,刷新本地与远程仓库的同步:

git remote prune <远程仓库别名>
# 命令执行情况如下:
$ git branch -vv
  bug    5abc3e7 [origin/bbb] rm777
  ccc    5abc3e7 [origin/fff] rm777
  ddd    5abc3e7 [origin/bbb] rm777
  dev    b61f60d [origin/dev] 888
* eee    5abc3e7 [origin/bbb] rm777
  fff    5abc3e7 [origin/fff] rm777
  master b61f60d [origin/master] 888

$ git remote prune origin
Pruning origin
URL: https://gitee.com/jxy123456jxy/gittest.git
 * [pruned] origin/fff

$ git branch -vv
  bug    5abc3e7 [origin/bbb] rm777
  ccc    5abc3e7 [origin/fff: gone] rm777
  ddd    5abc3e7 [origin/bbb] rm777
  dev    b61f60d [origin/dev] 888
* eee    5abc3e7 [origin/bbb] rm777
  fff    5abc3e7 [origin/fff: gone] rm777
  master b61f60d [origin/master] 888
# 命令执行后,远程分支后有gone字样代表该远程仓库分支已被删除。 

(4)解除本地分支与远程分支的关联关系

#切换到要解除关联的分支上,执行以下命令
git branch --unset-upstream

4、拉取分支

(1)拉取指定的远程分支代码。

第一使用clone命令方式:

# 这种方式默认克隆master分支的代码。
git clone <远程仓库地址>
# 克隆指定分支的代码。
git clone -b <远程分支名称> <远程仓库地址>
# 命令执行情况如下:
$ git clone -b bbb https://gitee.com/jxy123456jxy/gittest
Cloning into 'gittest'...
remote: Enumerating objects: 14, done.
remote: Counting objects: 100% (14/14), done.
remote: Compressing objects: 100% (9/9), done.
remote: Total 14 (delta 1), reused 0 (delta 0), pack-reused 0
Receiving objects: 100% (14/14), done.
Resolving deltas: 100% (1/1), done.

$ git branch -a
* bbb
  remotes/origin/HEAD -> origin/master
  remotes/origin/bbb
  remotes/origin/dev
  remotes/origin/master

# 可以看到只拉取了远程分支bbb到本地,而远程分支有三个。

第二是建立本地分支与远程分支关联关系,然后使用git pull命令:

# git checkout方式
$ git checkout -b ccc origin/dev
Switched to a new branch 'ccc'
branch 'ccc' set up to track 'origin/dev
$ ls
666.txt  777.txt  888.txt
# 成功建立了本地分支ccc,并拉取了远程分支dev的内容。

# git branch方式
# 需要先手动新建本地分支。不然会报错。
$ git branch --set-upstream-to=origin/dev ddd
fatal: branch 'ddd' does not exist
# 没有本地分支ddd报错,需要手动新建本地分支ddd。
$ git branch ddd
$ git branch --set-upstream-to=origin/dev ddd
branch 'ddd' set up to track 'origin/dev'.
# 成功拉取了远程分支dev的内容。
$ git branch -vv
  bbb 5abc3e7 [origin/bbb] rm777
  ccc b61f60d [origin/dev] 888
* ddd b61f60d [origin/dev] 888
# 本地分支ccc和ddd都和远程分支dev建立了关联关系。

(2)fetch和pull的区别

找到一篇讲的不错的博客,地址为:git fetch和git pull之间的区别_git fetch 和git pull区别_sean-zou的博客-CSDN博客文章来源地址https://www.toymoban.com/news/detail-566131.html

到了这里,关于git分支管理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Git 代码分支管理

    作者:京东科技 周新智 近日,IoT 研发团队加入了不少新同学,对 git 分支的命名和管理方式有些许的模糊,分支的命名规范以及管理方式对项目的版本发布至关重要,为了解决实际开发过程中版本发布时代码管理混乱、冲突等比较头疼的问题,我们将在文中阐述如何更好的

    2024年02月05日
    浏览(66)
  • git 工具使用--分支管理

    分支管理是Git的杀手级功能之一。分支:就是科幻中的平行宇宙,当你正在电脑面前学习C++的时候,另一个你正在另外一个平行宇宙里面学习Java。如果两个平行宇宙互不干扰,那对现在的你也没啥影响。不过,在某个时间点,两个平时宇宙合并了,结果,你既学习了C++,也学

    2024年02月16日
    浏览(37)
  • git分支管理

    查看分支 查看所有分支(包括远程分支) 创建分支 切换分支 创建+切换分支 删除本地分支 查看远程分支 新建远程分支 删除远程分支 查看本地分支和远程分支关联情况: 将本地的分支和远程的分支进行关联,设置过关联之后我们只需要git push和git pull就可以更新和推送这个

    2024年02月16日
    浏览(26)
  • Git---分支管理

    本篇博客开始介绍Git的杀手级功能之一 : 分支.分支就是科幻电影里面的平行宇宙,当你正在电脑前努力学习C++的时候,另一个你正在另一个平行宇宙里努力学习Java. 正文开始! 接着上面的阐述 : 如果两个平行宇宙互不干扰,那对现在的你也没有什么影响.不过,在某个时间点,两个平

    2024年02月12日
    浏览(24)
  • git~分支管理规范

    避免新开发的代码影响提测的代码 避免生产环境出现问题后,修复后,由于代码混乱,无法合并到生产环境 解决多个需求并行开发,并行测试,合并上线的问题 流程图工具我使用的是:diagrams.net 具体执行步骤 开发人员按需求粒度从dev建立分支 哪个需求或者哪些需求提测,

    2024年02月02日
    浏览(31)
  • Git 分支管理及规范

    1. 分支管理 代码提交在应该提交的分支 随时可以切换到线上稳定版本代码 多个版本的开发工作同时进行 2. 提交记录的可读性 准确的提交描述,具备可检索性 合理的提交范围,避免一个功能就一笔提交 分支间的合并保有提交历史,且合并后结果清晰明了 避免出现过多的分

    2024年02月15日
    浏览(30)
  • 管理Git的分支

    目录 一、本地分支(local branches)管理 1.1  查看和建立分支( git branch) 1.2  分支中提交的浏览与比较(git log) 1.3 切换当前分支(git switch)与合并分支(git merge) 1.4 签出分支(git checkout) 二、远程分支及其管理 2.1 远程仓库与远程分支 2.2远程仓库的复刻(fork)与克隆

    2024年02月04日
    浏览(28)
  • git 分支管理

    一. 理解分支 1. master分支  二. 分支的(创建,切换、合并、删除) 1.查看分支  2.创建分支 3. 切换分支  4. 合并分支 5. 删除分支 三. 合并冲突 四. 合并模式 五. bug 分支 六. 强制删除分支 在我们的版本库中式有一个master分支的,但是我们不知道我们的master分支是什么  我们

    2024年02月12日
    浏览(40)
  • Git的分支管理

    我们常见的分支有: master:主分支,也成为线上分支,主要用来 版本发布的(生产环境部署) 。 dev:开发分支,该分支保存了开发的最新代码。 release:可以认为是 master分支的测试版,也可认为预发布分支 ,比如某个功能开发完成或者某个bug修复完成后,测试成功以后就可

    2024年02月02日
    浏览(16)
  • 【Git】:分支管理

    在版本回退⾥,你已经知道,每次提交,Git都把它们串成⼀条时间线,这条时间线就可以理解为是⼀个分⽀。截⽌到⽬前,只有⼀条时间线,在Git⾥,这个分⽀叫主分⽀,即master分⽀。 每次提交,master分⽀都会向前移动⼀步,这样,随着你不断提交,master分⽀的线也越来越⻓

    2024年02月21日
    浏览(24)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包