当前位置:   article > 正文

git创建fork仓库和关联fork仓库 & git提交新分支之git删除本地分支和git删除远程分支——git remote prune origin同步分支

fork仓库

git创建fork仓库和关联fork仓库 & git提交新分支之git删除本地分支和git删除远程分支——git remote prune origin同步分支 & 跨分支合并-新建分支之本地和远程仓库

拉取本地没有的远程分支,并推送到自己的远程

git branch -a  # 查看所有分支
本地没有,则
git remote        # 列出所有远程主机
git remote update origin --prune   # 远程新建分支后,本地查看不到,使用该命令同步
git branch -r      # 列出所有远程分支
关键2步,如下
1、git branch -a # 查看所有分支
2、git checkout -b reConfig(本地分支名称) remotes/ori/reConfig(git branch -r获取的远程主库分支名称) # 新建并拉取远程主库分支
git push origin(自己主库别名) reConfig # 把分支推送到自己的主库
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
跨分支合并
// ori-远程主库  origin-自己主库
git checkout -b product-v2sp10-2022-3-22(本地新建并拉取同名分支) remotes/ori/product-v2sp10-2022-3-22(主库分支) //  新建本地sp10并拉取主库sp10  ---重要!
git push origin product-v2sp10-2022-3-22  // 推送并新建自己远程sp10
git  merge  product-v2sp9-2022-3-22    //本地sp10合并主库sp9
git push origin product-v2sp10-2022-3-22  //推送自己远程sp10
git  merge  product-v2sp10-2022-3-22 自己主库sp10合并到主库sp10
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
1、fork仓库

简略版

git remote
git remote add devlop https://gitee.com/olympic-winter/winter-desk.git
git push devlop master
  • 1
  • 2
  • 3

详细版1

git remote
git remote add devlop(远程企业库命名) https://gitee.com/olympic-winter/kurtosis-winter-front-desk.git(远程企业库)
git remote
git stash
git status
git branch
git fetch
git pull devlop master
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

详细版2

git remote add devlop git@gitlab.nav.com:ck/nav.git
git remote add devlop https://gitlab.nav.com/cmpteam/nav.git

git remote
git remote add ori(远程主库命名) git@gitlab.nav.com:cmpteam/nav.git(远程主库)
git branch
git remote
git fetch ori
//git pull——拉取的是fork的库
git pull ori master——拉取的是远程主库
git push origin master——推送的是fork远程库

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
2、git提交新分支

简略版

// 删除错误版本
git push origin --delete product-v2sp9-2022-03-05
git branch -D product-v2sp9-2022-03-05
git remote update ori --prune
// 新建同名版本
git checkout -b product-v2sp9-2022-03-05
git push origin product-v2sp9-2022-2-15 -f
git fetch origin 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
附:git本地拉取master外其他分支代码
// 查看本地有什么分支
git branch
// 查看远程有什么分支
git branch -a
// 切换分支名字
git checkout-b 分支名字(product-sp7-patch)
// 拉取主库master外的别的分支代码
git pull ori(远程主库别名) 分支名字(remotes/ori/product-sp7-patch)// 没有括号-是填入主库新分支的名字
// 实例如下
git pull ori product-sp7-patch(自己本地分支) remotes/ori/product-sp7-patch(对应远程主库分支)
// 推送到fork自己远程库
git push origin(自己fork仓库别名) product-sp7-patch
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

介绍

// 新建并切换新分支-devlop
git checkout -b product-v2sp9-2022-03-05

// 把本地新建分支推送到自己的远程仓库origin
git push origin product-v2sp9-2022-03-05
//从企业主库ori的分支devlop拉取代码
git pull ori product-v2sp9-2022-03-05

// 查看本地和远端的分支是否相同
git remote show origin
// 同步远程的分支到本地,这样远程已经被删除的分支,本地就不会再看见了
git remote prune origin  //删除本地库中有但在远程库已经不存在的分支

// 当发现远程的分支可以在gitlab网页上显示,但是本地git branch -a看不到时,ori-是fork的企业远程主库
git remote update ori --prune
// 更新远程分支列表
git remote update origin --prune

// 强制删除本地分支,对追踪的远程分支无效 product-v2sp9-2022-03-05
git branch -D product-v2sp9-2022-03-05

// 查看远程分支
git branch -r

// 删除远程分支 product-v2sp9-2022-03-05
git push origin --delete product-v2sp9-2022-03-05    
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
实例1-git删除本地分支和删除远程分支

场景:

我现在在dev20211018分支上,想删除dev_20211018分支

1、先切换到别的分支: git checkout dev_20210927

2、删除本地分支: git branch -d dev_20211018

3、如果删除不了可以强制删除,git branch -D dev_20211018

4、有必要的情况下,删除远程分支:git push origin --delete dev_20211018

5、在从公用的仓库fetch代码:git fetch origin dev20181018:dev_20211018

6、然后切换分支即可:git checkout dev_20211018

注:上述操作是删除个人本地和个人远程分支,如果只删除个人本地,请忽略第4步

实例2-删除在本地有但在远程库中已经不存在的分支
  • 查看远程库的一些信息,及与本地分支的信息

git remote show origin

git branch -a(分支信息) 或 git branch -a -v(详细信息)

$ git remote show origin

* remote origin
  Fetch URL: ... .git
  Push  URL: ... .git
  HEAD branch: master
  Remote branches:
    dev                     tracked
    jqmobi                  tracked
    master                  tracked
    refs/remotes/origin/3.1 stale (use 'git remote prune' to remove)
    refs/remotes/origin/tc  stale (use 'git remote prune' to remove)
    refs/remotes/origin/xhl stale (use 'git remote prune' to remove)
  Local branches configured for 'git pull':
    dev    merges with remote dev
    master merges with remote master
  Local refs configured for 'git push':
    dev    pushes to dev    (up to date)
    jqmobi pushes to jqmobi (up to date)
    master pushes to master (up to date)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

其中3.1, tc, xhl三个分支在远程库已经不存在了(你之前从远程库拉取过,可能之后被其他人删除了,你用 git branch -a 也是不能看出它们是否已被删除的),这时候我们可以删除本地库中这些相比较远程库中已经不存在的分支:

  • 删除本地有但在远程库已经不存在的分支

git remote prune origin

$ git remote prune origin
Password for '...':
Pruning origin
URL: ... .git
 * [pruned] origin/3.1
 * [pruned] origin/tc
 * [pruned] origin/xhl
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/925007
推荐阅读
相关标签
  

闽ICP备14008679号