当前位置:   article > 正文

[转]Github进行fork后如何与原仓库同步_github同步fork仓库

github同步fork仓库

问题场景:

新公司要求所有的代码提交都要先通过自己的库提交到主repo上去,所以先在gitlab网页上fork出一个自己的库,在本地修改完代码后提交到远程自己库上,然后在gitlab网页上发起一个merge request请求,然后等待主repo主人review,同意之后合入。

整体思路如下:

在自己的本地添加主repo为上游代码库,注意只是配置原仓库的路径,并没有真正clone原仓库,

然后将远程主repo同步到自己本地的机器,

然后本地的机器再push到自己的远程的fork库

所有的操作都要在本地命令行完成

jiankunking@jiankunking-PC:~/go/src/gin-vue-admin/QMPlusServer$ git remote -v //查看关联分支
origin  git@github.com:jiankunkingit/gin-vue-admin.git (fetch)
origin  git@github.com:jiankunkingit/gin-vue-admin.git (push)
jiankunking@jiankunking-PC:~/go/src/gin-vue-admin/QMPlusServer$ git remote add upstream https://github.com/piexlmax/gin-vue-admin.git //关联源分支,并启别名为upstream
jiankunking@jiankunking-PC:~/go/src/gin-vue-admin/QMPlusServer$ git remote -v
origin  git@github.com:jiankunkingit/gin-vue-admin.git (fetch)
origin  git@github.com:jiankunkingit/gin-vue-admin.git (push)
upstream        https://github.com/piexlmax/gin-vue-admin.git (fetch)
upstream        https://github.com/piexlmax/gin-vue-admin.git (push)
jiankunking@jiankunking-PC:~/go/src/gin-vue-admin/QMPlusServer$ git fetch upstream //摘取关联的源分支最新代码
来自 https://github.com/piexlmax/gin-vue-admin
 * [新分支]          feature/gin-vue-admin_v1.0.0 -> upstream/feature/gin-vue-admin_v1.0.0
 * [新分支]          feature/gin-vue-admin_v2.0.0 -> upstream/feature/gin-vue-admin_v2.0.0
 * [新分支]          master                       -> upstream/master
 * [新分支]          release/gin-vue-admin_v1.0.0 -> upstream/release/gin-vue-admin_v1.0.0
jiankunking@jiankunking-PC:~/go/src/gin-vue-admin/QMPlusServer$ git branch -a //查看本地和关联远程的所有的支支
  jiankunking_edit_admin_config
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/gin-vue-admin-develop
  remotes/origin/jiankunking_edit_admin_config
  remotes/origin/master
  remotes/origin/micro-gin-vue-admin
  remotes/upstream/feature/gin-vue-admin_v1.0.0
  remotes/upstream/feature/gin-vue-admin_v2.0.0
  remotes/upstream/master
  remotes/upstream/release/gin-vue-admin_v1.0.0

jiankunking@jiankunking-PC:~/go/src/gin-vue-admin/QMPlusServer$ git status
位于分支 master
您的分支与上游分支 'origin/master' 一致。
尚未暂存以备提交的变更:
  (使用 "git add <文件>..." 更新要提交的内容)
  (使用 "git checkout -- <文件>..." 丢弃工作区的改动)

        修改:     .gitignore
        修改:     static/config/config.json

jiankunking@jiankunking-PC:~/go/src/gin-vue-admin/QMPlusServer$ git add .
jiankunking@jiankunking-PC:~/go/src/gin-vue-admin/QMPlusServer$ git commit -m"edit config.json"

jiankunking@jiankunking-PC:~/go/src/gin-vue-admin/QMPlusServer$ git merge upstream/master //要主干上合并源代码的主干
已经是最新的。
jiankunking@jiankunking-PC:~/go/src/gin-vue-admin/QMPlusServer$ git add .
jiankunking@jiankunking-PC:~/go/src/gin-vue-admin/QMPlusServer$ git commit -m"merge upstream master"
jiankunking@jiankunking-PC:~/go/src/gin-vue-admin/QMPlusServer$ git status
位于分支 master
您的分支与上游分支 'origin/master' 一致。
jiankunking@jiankunking-PC:~/go/src/gin-vue-admin/QMPlusServer$ git pull //拉取自己线上仓库里的代码
已经是最新的。
jiankunking@jiankunking-PC:~/go/src/gin-vue-admin/QMPlusServer$ git push //推送代码到自己的仓库里
Total 0 (delta 0), reused 0 (delta 0)
To github.com:jiankunkingit/gin-vue-admin.git
   b75d839..c0c1a2c  master -> master
  • 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
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54

如果想断开远程分支

jiankunking@jiankunking-PC:~/go/src/gin-vue-admin/QMPlusServer$ git remote rm upstream
  • 1

推送代码到自己的仓库里后,就可以到线上New pull request请求合并代码到源仓库里了,这时就等待源仓库里的管理员合并代码了.

其实合并源仓库的master分支 可以合并成一条命令

git pull upstream master

第一个参数pustream 表示远程主repo

第二个参数master 表示自己fork库的master分支

这个是公司文档上写的,并不是从网上找来的

为了说清楚这个问题,亲自做了一张图
在这里插入图片描述

切换到远程dev分支上去进行开发

git clone新项目后如何拉取其他分支代码到本地

1、git clone git@git.n.xxx.com:xxx/xxx.git

2、git fetch origin dev 命令来把远程dev分支拉到本地

3、checkout -b dev origin/dev 在本地创建分支dev并切换到该分支

4、git pull origin dev 就可以把远程dev分支上的内容都拉取到本地了

注:当本地代码是dev分支时,需要先 git pull origin dev 更新远程分支代码到本地,然后再git pull (即拉取远程master分支更新到本地),否则会有冲突。

原文地址:https://www.cnblogs.com/haima/p/12627288.html

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/502264
推荐阅读
相关标签
  

闽ICP备14008679号