github随时同步代码_Github同步上游库代码

前段时间加了一个博客群,有幸参加了群主组织的一个开源项目,在多人开发中使用git也遇到了一些问题,这里总结一下,希望对大家有用;

GIT(分布式版本控制系统)当上游源码库发生提交改变的时候后我们fork下来的库是不会自动更新的,需要我们手动更新,本文简单介绍一下用命令行实现的过程;

Pull Requests

因开发人数比较多,我们采用了pr(Pull Requests)的方式操作,这里简单说下pr的操作流程,首先我们要找到项目然后Fork下来:

这样在我们自己的github上就会有对应的代码库:

然后根据ssh克隆fork库,这样我们就能在本地开发了,开发完以后正常的四步走上传到fork库,到目前为止你是可以再自己的fork中看到自己的代码的,然后就是最后一步pr:

弄好以后直接提交等上游库审查合并就可以了(我的已经提交了所有没有提交按钮);

现在问题来了,当我下次需要开发的时候我需要先pull线上的代码,但是我直接pull 分之后提示我

明明上游库已经有更新过的啊,

打开上游代码库,以及自己fork下来的库对比一下:

上游库的commit数量和本地不同,说明fork的库没有自动更新,需要我们手动更新。

同步上游代码库

下面我来说说怎么解决这个问题:

查看线上库的地址

$ git remote -v

origin git@github.com:username/fork.git (fetch)

origin git@github.com:username/fork.git (push)

配置上游库的路径

$ git remote add upstream ssh.git

查看是否添加成功

$ git remote -v

origin git@github.com:username/fork.git (fetch)

origin git@github.com:username/fork.git (push)

upstream ssh (fetch)

upstream ssh (push)

抓取原仓库的修改文件

$ git fetch upstream

remote: Enumerating objects: 33, done.

remote: Counting objects: 100% (33/33), done.

remote: Compressing objects: 100% (31/31), done.

remote: Total 33 (delta 11), reused 12 (delta 2), pack-reused 0

Unpacking objects: 100% (33/33), done.

From github.com:JinJieTan/Palantir

* [new branch] dev -> upstream/dev

* [new branch] develop/kk -> upstream/develop/kk

* [new branch] develop/nn0917 -> upstream/develop/nn0917

* [new branch] master -> upstream/master

* [new branch] peter -> upstream/peter

切换master分支

$ git checkout master

Switched to branch 'master'

Your branch is ahead of 'origin/master' by 1 commit.

(use "git push" to publish your local commits)

和并提交 就可以了

$ git merge upstream/master

$ git push origin master

以后每次更新都重抓取原仓库的修改文件执行一遍就可以了

其实后面三步可以合并成一条命令

git pull upstream master

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

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

跟着上面操作就可以首先上游代码库与fork库代码同步了,是不是很很神奇?

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值