首页 > 其他分享 >Git链接上游仓库

Git链接上游仓库

时间:2023-04-04 17:24:06浏览次数:47  
标签:git remote 仓库 gitee Git https com 链接

技术背景

在Git的操作过程中,一般的组织内部工作模式可以在同一个仓库上的master-develop-feature不同分支上进行开发,也有一些人和外部协作者会通过Fork到自己本地的仓库进行更新的方案。但是对于Fork仓库的更新有一个问题是,如果长期在自己本地更新,有可能会逐渐脱离原始的分支,甚至会产生众多的冲突。那么为了避免在开发过程中遇到众多的冲突,建议大家在开发的过程中定期从远程的原始仓库同步过来。本文要探讨的是,如何跟远程的上游仓库进行同步。

方法一:强制拉取

第一种方法非常的简单粗暴,其实不建议使用,但是如果确实嫌麻烦的人,可以点击下图中的圈圈按钮,直接从原始仓库强制拉取。

之所以不推荐这种方法,是因为在远程拉取的过程中有可能出现冲突,但是因为采取了强制性拉取的策略,所以实际上本地开发的一些内容有可能会在拉取的过程中被覆盖。

方法二:创建远程同步

以下详细介绍下远程仓库同步的方法。首先我们从远程clone一个我们自己Fork的仓库到本地来:

$ git clone https://gitee.com/dechin/mindsponge.git
正克隆到 'mindsponge'...
Username for 'https://gitee.com': dechin
Password for 'https://[email protected]': 
remote: Enumerating objects: 7869, done.
remote: Counting objects: 100% (7869/7869), done.
remote: Compressing objects: 100% (2198/2198), done.
remote: Total 7869 (delta 5653), reused 7869 (delta 5653), pack-reused 0
接收对象中: 100% (7869/7869), 34.72 MiB | 1.15 MiB/s, 完成.
处理 delta 中: 100% (5653/5653), 完成.

进入本地目录,查看远程链接:

$ cd mindsponge/
$ git remote -v
origin	https://gitee.com/dechin/mindsponge.git (fetch)
origin	https://gitee.com/dechin/mindsponge.git (push)

可以看到,此时只跟自己Fork的两个仓库有链接,也就是只能pull或者push到origin的这个仓库上面。然后可以使用git remote add的方法添加原始仓库的链接:

$ git remote add -t develop remote https://gitee.com/helloyesterday/mindsponge.git

上一步的操作中我们甚至可以使用-t来配置与远程仓库构建链接的指定分支。此时我们再次查看远程链接:

$ git remote -v
origin	https://gitee.com/dechin/mindsponge.git (fetch)
origin	https://gitee.com/dechin/mindsponge.git (push)
remote	https://gitee.com/helloyesterday/mindsponge.git (fetch)
remote	https://gitee.com/helloyesterday/mindsponge.git (push)

我们发现多了两个名为remote的链接,这个就是我们Fork来的原始仓库。当然,要构建这种远程的链接,需要拥有远程仓库的相关操作权限,如push和fetch等。完成上述操作后,如果我们在本地执行了一些更新,并且已经addcommit过了,那么我们就可以向远程仓库进行push:

$ git push origin develop
$ git push remote develop

只要有权限,就两边都可以pull和push。这样一来,我们在本地开发了一定的时间之后,也可以从remote上pull下来最新的代码,在本地解决好相关的冲突之后,push到自己Fork的分支。最后在完成特性的开发之后,再提交一个Pull Request到远程remote的分支上,这样是一个比较合理的Git操作。

总结概要

通常来说,一个Git仓库由内部组织者和外部协作者共同维护。对于内部开发者而言,他们可以通过master-develop-feature模型进行代码开发,在仓库中创建相应的特性分支和开发分支,最后再合入到主分支供大家使用。而对于外部开发者而言,最好的方式是Fork一个仓库到自己本地,然后使用本文介绍的方法二去定期跟远程remote仓库进行同步,避免在长时间的开发周期中遇到一些冲突。

版权声明

本文首发链接为:https://www.cnblogs.com/dechinphy/p/git-remote.html

作者ID:DechinPhy

更多原著文章请参考:https://www.cnblogs.com/dechinphy/

打赏专用链接:https://www.cnblogs.com/dechinphy/gallery/image/379634.html

腾讯云专栏同步:https://cloud.tencent.com/developer/column/91958

CSDN同步链接:https://blog.csdn.net/baidu_37157624?spm=1008.2028.3001.5343

51CTO同步链接:https://blog.51cto.com/u_15561675

标签:git,remote,仓库,gitee,Git,https,com,链接
From: https://www.cnblogs.com/dechinphy/p/git-remote.html

相关文章

  • 蓝图,g对象,数据库链接池
    flask蓝图使用blueprint翻译后称之为蓝图。作用是:用来划分目录​ 之前写项目的时候全在一个py文件内写flask项目。需要使用蓝图来划分目录。小型项目与大型目录都可以蓝图使用1导入蓝图类业务视图里fromflaskimportBlueprint2实例化得到蓝图对象业务视图里u......
  • git pull 不用输入用户名密码
    首先需要通过SSH的方式进行连接,而不能通过https的方式连接。如果此前已经把origin的URL设置为https,则可以通过命令行修改:gitremoteset-urlorigin<newurl>SSH公钥涉及命令:##生成公钥ssh-keygen-trsa-C"你的邮箱地址"##查看公钥cat/root/.ssh/id_rsa.pu......
  • 上传代码到gitlab
     gitinit#初始化cdexisting_repo#进入项目目录gitconfig--globaluser.email"[email protected]"#设置账号身份gitconfig--globaluser.name"fullname"#设置账号身份gitremoteaddoriginhttp://111.111.111.111/cg/projectcore.git#连接远程项目地址gita......
  • VSCode的git使用
    只需要安装VSCode即可,其他都不需要安装(如Git等)。1、下载远程Git项目到本地目录2、增删改,之后评论、提交 可以切换分支 add到暂存区gitmergemaster 将远程仓库的最新代码同步到自己的分支......
  • 安装MYSQL_5.0/8.0教程(附数据库和客户端工具下载链接)
    1.Mysql5.7下载网盘下载(推荐):链接:https://pan.quark.cn/s/d98d2536f847提取码:kbyN 官网下载:mysql下载地址:https://dev.mysql.com/downloads/windows/installer/8.0.html跳转到上述页面,选择Archives(历史存档)选择版本-下载2.Mysql安装双击打开下载好的文件。以前安......
  • 开源不到 48 小时获 35k star 的推荐算法「GitHub 热点速览」
    开源不到48小时获35kstar的推荐算法「GitHub热点速览」 本周的热点除了GPT各类衍生品之外,还多了一个被马斯克预告过、在愚人节开源出来的推特推荐算法,开源不到2天就有了35k+的star,有意思的是,除了推荐算法本身之外,阅读源码的工程师们甚至看到了员工对马斯克的特......
  • git pull遇到错误:error: Your local changes to the following files would be overwr
    error:Yourlocalchangestothefollowingfileswouldbeoverwrittenbymerge:意思是我台式机上新修改的代码的文件,将会被git服务器上的代码覆盖;我当然不想刚刚写的代码被覆盖掉,看了git的手册,发现可以这样解决:方法1:如果你想保留刚才本地修改的代码,并把git服务器上的代码pu......
  • git pull 报错提示 fatal: refusing to merge unrelated histories
    从远程拉到本地的时候提示错误 造成原因:1.远程仓库和本地仓库内容不相关,合并不兼容。2.目录有问题,.git可能意外被删除。如果克隆或清理项目时可能会发生这种情况。3.从远程仓库拉取或推送数据时,分支位于不同的HEAD位置,并且由于缺乏共性而不发匹配。 我出......
  • git使用
    安装完git后一,配置git在gitbash里敲命令::1,gitconfig--globaluser.name"用户名";2,gitconfig--globaluser.email"邮箱"; 二,SSH配置:打开gitbash1,执行生成公钥和私钥的命令:ssh-keygen-trsa并按回车3下(为什么按三下,是因为有提示你是否需要设置密码,如果设置......
  • Github Copilot
    介绍YourAIpairprogrammerGitHubCopilot使用OpenAICodex从编辑器中实时建议代码和整个函数。官网链接:GithubCopilot获取githubcopilot需要绑定GitHub账号才可以使用。注册github账号(网络不好的可以使用代理加速访问)点击进入Github,注册流程自行研究。启用g......