精华内容
下载资源
问答
  • git 拉取上游仓库tag并同步
    2022-01-27 16:34:21
    git remote add upstream https://github.com/xxxx/xxxx.git  
    git fetch upstream  tag vX.X   
    git tag
    git push origin refs/tags/vX.X:refs/tags/vX.X
    

    更多相关内容
  • 在使用git管理项目的时候,不管是gitlab还是github项目,都可以通过fork将上游仓库的项目复制到自己仓库中,但是上游的仓库变更时,怎么同步更新自己仓库里的变化呢? 一般有两种方式,一种方式是将上游的仓库提...

    git pull upstream同步上游更新

    在使用git管理项目的时候,不管是gitlab还是github项目,都可以通过fork将上游仓库的项目复制到自己仓库中,但是上游的仓库变更时,怎么同步更新自己仓库里的变化呢?

    一般有两种方式,一种方式是将上游的仓库提merge request到自己的仓库去合并;另一种方式是每次在修改自己仓库复制的项目之前,先通过git pull upstream master去同步上游项目的更新。

    git pull origin与git pull upstream区别

    git pull origin是拉取自己或团队项目的更新到本地;git pull upstream是拉取fork的外部上游项目的更新到本地自己仓库中的项目中。

    git pull origin

    origin指的是源仓库,一般为git clone的仓库,如xxx/fastjson,是克隆后默认提交和拉取的仓库地址。

    git pull upstream

    upstream意指上游仓库,一般是fork 出的上游仓库,如alibaba/fastjson。

    fork操作

    无论是github还是gitlab都有fork操作,该操作相当于把外部的仓库里面的项目复制到自己仓库下。例如,对alibaba/fastjson项目进行fork,会在自己仓库出现tomcat/fastjson项目,这里的tomcat代指自己github或gitlab的用户名。

    git clone ssh://git@github.com/tomcat/fastjson.git
    git pull // 默认是 git pull origin master,从bannidaer/fastjson的master分支拉代码
    git pull upstream master // 从上游alibaba/fastjson的master分支拉代码
    

    git pull upstream遇到 ‘upstream’ does not appear to be a git repository问题

    在进行本地fork出的项目修改之前,想要先同步上游的更新,于是进行git pull upstream操作,出现如下问题:

    fatal: 'upstream' does not appear to be a git repository
    fatal: Could not read from remote repository.
     
    Please make sure you have the correct access rights and the repository exists.
    

    通过 git remote -v 检查,发现错误原因是 upstream repository 的地址是 ssh协议,而不是 https,并且没有指定upstream上游仓库地址而是自己origin的tomcat仓库。

    origin  ssh://git@github.com/tomcat/fastjson.git (fetch)
    

    解决方案:

    如果想要使用https协议的仓库地址,可以利用 git remote remove upstream ssh://…仓库地址 的方式移除掉原来的 upstream repository,再 git remote add upstream https://… 添加上新的地址。

    % git remote add upstream ssh://git@github.com/alibaba/fastjson.git
    origin  ssh://git@github.com/tomcat/fastjson.git (fetch)             // 自己仓库的origin源项目
    origin  ssh://git@github.com/tomcat/fastjson.git (push)
    upstream        ssh://git@github.com/alibaba/fastjson.git (fetch)     // 外部上游仓库的项目
    upstream        ssh://git@github.com/alibaba/fastjson.git (push)
    

    添加完上游仓库地址后,再次执行git pull upstream命令如下:

    % git pull upstream master
    remote: Enumerating objects: 3, done.
    remote: Counting objects: 100% (3/3), done.
    remote: Compressing objects: 100% (3/3), done.
    remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
    Unpacking objects: 100% (3/3), 764 bytes | 76.00 KiB/s, done.
    From ssh://git@github.com/alibaba/fastjson
     * branch            master     -> FETCH_HEAD
     * [new branch]      master     -> upstream/master
    Updating xxxxxx
    Fast-forward
    

    由于之前配置了GOPRIVATE,项目中引用私有仓库的项目,就将之前https协议拉取代码的方式改成了ssh方式,这里指定ssh协议的上游仓库地址,如果你使用的是https协议可以指定https协议的上游仓库。

    参考

    Git:Origin和upstream的区别
    ‘git pull upstream master‘遇到的问题

    展开全文
  • GitHub 操作:同步 Fork 来的仓库 Fork 是 Github 上的常用操作之一,不同于 Star,Fork 会将进行 Fork 操作那一刻的仓库代码完全复制到自己的仓库下。Fork 之后,我们可能会为原仓库添加一个 Feature,之后发起 ...

    GitHub 操作:同步 Fork 来的仓库


    Fork 是 Github 上的常用操作之一,不同于 Star,Fork 会将进行 Fork 操作那一刻的仓库代码完全复制到自己的仓库下。Fork 之后,我们可能会为原仓库添加一个 Feature,之后发起 Pull Request。

    往往在 Fork 之后,原仓库的作者也会进行代码更新,与我们自身的更新在 Git Commit 树中会分叉,如下图所示:
    git commit tree

    在某些这样的时候,我们发起的 Pull Request 是有冲突的。就算没有冲突,及时在发送 Pull Request 之前同步原仓库的代码也是十分必要的。本文将会介绍同步 Fork 原仓库代码的方法。


    Step 1. 添加 upstream

    我们首先要在 Git 中配置指向上游仓库(即 Fork 前的原本仓库)的远程仓库。

    查看当前的 remote 情况:

    $ git remote -v  # 列出当前的 remote 情况
    > origin  https://github.com/YOUR_USERNAME/YOUR_FORK.git (fetch)
    > origin  https://github.com/YOUR_USERNAME/YOUR_FORK.git (push)
    

    添加上游仓库的地址:

    $ git remote add upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git
    

    验证:

    $ git remote -v
    > origin    https://github.com/YOUR_USERNAME/YOUR_FORK.git (fetch)
    > origin    https://github.com/YOUR_USERNAME/YOUR_FORK.git (push)
    > upstream  https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git (fetch)
    > upstream  https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git (push)
    

    Step 2. 同步上游仓库代码

    我们可以直接使用 git pull 命令同步 upstream 的指定分支即可。

    为了更加保险,可使用 git pull --rebase 在本地解决可能发生的冲突。


    Step 3. 上传到自己的仓库,发起PR

    同步代码并解决冲突完成之后,可以将代码上传到自己的仓库中,并发起 Pull Request。


    参考链接

    展开全文
  • Github同步上游库代码

    2020-12-21 08:42:19
    GIT(分布式版本控制系统)当上游源码库发生提交改变的时候后我们fork下来的库是不会自动更新的,需要我们手动更新,本文简单介绍一下用命令行实现的过程;Pull Requests因开发人数比较多,我们采用了pr(Pull Requests...

    前段时间加了一个博客群,有幸参加了群主组织的一个开源项目,在多人开发中使用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库代码同步了,是不是很很神奇?

    展开全文
  • Git 如何同步上游分支代码?

    千次阅读 2020-08-15 21:22:29
    上游仓库,也就是源分支代码更新了,我们 Fork 的下游分支,怎么同步上游仓库的更新呢? 本文是 Git 小知识系列文章的第一篇,以后将不定时的推送开发中常见的 Git 问题解决方案,Git 使用小技巧。 如果你喜欢的话...
  • 配置项目的上游仓库 首先需要大家将fork的仓库代码clone到本地,后面的所有操作都是基于本地代码库来进行操作的。比如,可以通过git clone先将fork的代码下载到本地: git clone git@github.com:secbr/nacos.git ...
  • 在你fork项目之后,原仓库又更新了,但GitHub不会自动帮你把原仓库的更新同步到你fork后的仓库,可能会导致在提交Pull request时,你的版本和原仓库的版本不一致。你可以把fork的项目删除掉,再重新fork。当然这不是...
  • 团队协作,为了规范,一般都是fork组织的仓库到自己帐号下,再提交pr,组织的仓库一直保持更新,下面介绍如何保持自己fork之后的仓库与上游仓库同步。 下面是我fork github 开源项目envoy 仓库...
  • 1.clone fock的项目到本地 git clone https://github.com/YOUR_USERNAME/YOUR_FORK.git 2.查看项目远程状态 git remote -v # origin ... 3.添加一个将被同步给 fork 远程的上游仓库
  • 具体来说步骤如下:fork项目在github上面fork一个项目如此简单,以至于很多人的仓库里面fork出来的项目都泛滥成灾了!以前没有找到删除fork出来的项目的方法,原来藏在setting的dangerous zone里面。克隆项目到本地...
  • 保持fork之后的项目和上游同步 参考链接:https://github.com/staticblog/wiki/wiki/%E4%BF%9D%E6%8C%81fork%E4%B9%8B%E5%90%8E%E7%9A%84%E9%A1%B9%E7%9B%AE%E5%92%8C%E4%B8%8A%E6%B8%B8%E5%90%8C%E6%AD%A5 ...
  • Github行动:叉与上游同步 叉的动作! 自动将叉子上的分支与原始存储库中的最新提交同步。 保持最新状态! (它实际上可用于将任何回购分支与上游回购同步,但我在制作分叉时就在考虑分叉。) 预期的工作流程 此操作...
  • Gerrit两个不同的仓库之间双向同步管理 1,在gerrit上找到记录 如果是open状态,请先操作submit http://xxxxxxxxxx:8085/q/status:open 2,进入到本地已repo init的目录,更新A仓库最新版本。 git ...
  • git: 保持fork的项目与上游同步

    千次阅读 2017-11-04 00:00:12
    git remote add upstream 上游地址git fetch upstreamgit checkout mastergit merge upstream/mastergit push origin master
  • 说明你未设置 upstream (中文叫:上游代码库)一般情况下,设置好一次 upstream 后就无需重复设置。 执行命令 git remote add upstream http://****** 再次执行命令 git remote -v 检查是否成功....
  • 在本地仓库添加远程仓库,并同步远程仓库,步骤如下: 一、在本地创建一个目录,在目录在添加文件,并初始化仓库 $ mkdir testGit $ echo "aaa">testGitFile.txt $ sudo git init $ sudo git add * $ sudo...
  • Git:fork仓库和远程仓库同步

    千次阅读 2020-12-16 17:03:01
    Fork到自己的仓库 查看是否设置上游仓库 git remote -v 有upstream,则表示设置上游仓库 如果没有,设置 新增 remote (远程上游仓库), 即, 将本书仓库, 追加为 ...更新本地仓库和上游仓库同步 git fetch upst..
  • 镜像同步公网yum源上游yum源必须要支持rsync协议,否则不能使用rsync进行同步。centos源:rsync://rsync.mirrors.ustc.edu.cn/centos/epel源:rsync://rsync.mirrors.ustc.edu.cn/epel/同步命令:# rsync -vrt --...
  • 在你 fork 之后, SamsungLabs(原仓库)的仓库又更新了,但 github 不会自动帮你把SamsungLabs的仓库同步给你 fork 后的仓库,导致你提交 pull、request 时的版本和SamsungLabs的版本不一致。Github进行fork后如何...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,607
精华内容 2,242
关键字:

同步上游仓库