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

news/2024/11/24 1:41:09/

问题场景:

新公司要求所有的代码提交都要先通过自己的库提交到主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
* masterremotes/origin/HEAD -> origin/masterremotes/origin/gin-vue-admin-developremotes/origin/jiankunking_edit_admin_configremotes/origin/masterremotes/origin/micro-gin-vue-adminremotes/upstream/feature/gin-vue-admin_v1.0.0remotes/upstream/feature/gin-vue-admin_v2.0.0remotes/upstream/masterremotes/upstream/release/gin-vue-admin_v1.0.0jiankunking@jiankunking-PC:~/go/src/gin-vue-admin/QMPlusServer$ git status
位于分支 master
您的分支与上游分支 'origin/master' 一致。
尚未暂存以备提交的变更:(使用 "git add <文件>..." 更新要提交的内容)(使用 "git checkout -- <文件>..." 丢弃工作区的改动)修改:     .gitignore修改:     static/config/config.jsonjiankunking@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.gitb75d839..c0c1a2c  master -> master

如果想断开远程分支

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

推送代码到自己的仓库里后,就可以到线上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


http://www.ppmy.cn/news/101830.html

相关文章

接口的讲解

在这里之前我想童鞋们都学习过了springmvc。mybatis-plus。Springboot等一些框架 那么下面我们就整合这些框架 我们通过写crud这些接口 写接口的第一步就是引入pom文件 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://m…

六级备考19天|CET-6|翻译练习|真题·青藏铁路|9:30~11:20

目录 1 中文 2 练习 ​ 3 答案​ 4 解析 5 订正 复习 1 中文 2 练习 3 答案 4 解析 铁路 railway/railroad 全长 with a total length of 其中xxx在海拔4000多米以上&#xff0c;非限制性定语从句&#xff0c;960 kilometers of which are over 400 me…

FFMPEG常用命令 音视频合并

目录 一、音频合并 1.获取音频时长 2.合并两段音频 3.合并音频插入空白 二、视频加背景图 三、音视频合成 1.保留视频声音 2.不保留视频声音 四、合并视频 本文将用几个实例&#xff0c;介绍ffmpeg命令的综合使用&#xff0c;主要涉及音频处理、视频处理和音视频合成。…

4种不改变格式将PDF转Word文档的方法

Microsoft Word 使用户能够按照自己的喜好创建和编辑文档。当用户发现一些PDF资源有助于补充他们的文书工作时&#xff0c;他们可能希望将PDF插入到Word文档中&#xff0c;特别是插入多页PDF文件&#xff0c;以进行编辑或其他目的。将 PDF 插入 Word 文档非常容易&#xff0c;只…

【*1900 DP+Tree】CF9D

Problem - 9D - Codeforces 题意&#xff1a; 思路&#xff1a; 计数问题&#xff0c;考虑计数DP 因为它是二叉树&#xff0c;比较特殊&#xff0c;所以可以考虑一下线性DP 按照题目最后要算的答案&#xff0c;状态可以这样设计&#xff1a; 设dp[i][j]表示树高为i&#x…

计算机网络学习笔记

<!-- GFM-TOC --> 计算机网络体系结构 传输层&#xff1a;TCP和UDP 什么是三次握手&#xff1f; 什么是四次挥手&#xff1f; TCP如何实现流量控制&#xff1f; TCP的拥塞控制是怎么实现的&#xff1f; TCP如何最大利用带宽&#xff1f; TCP与UDP的区别 TCP如何保…

Gradio的web界面演示与交互机器学习模型,高级接口特征《6》

大多数模型都是黑盒&#xff0c;其内部逻辑对最终用户是隐藏的。为了鼓励透明度&#xff0c;我们通过简单地将Interface类中的interpretation关键字设置为default&#xff0c;使得向模型添加解释变得非常容易。这允许您的用户了解输入的哪些部分负责输出。 1、Interpret解释 …

swagger-codegen的模板文件mustache中配置在swagger规范文档中自定义属性

在使用swagger-codegen生成代码时&#xff0c;我们经常需要使用自定义属性来生成我们需要的代码。swagger-codegen使用了mustache模板引擎来生成代码&#xff0c;而在mustache模板文件中&#xff0c;我们可以通过配置swagger规范文档中的自定义属性来生成我们需要的代码。本篇文…