技术背景
方法一:强制拉取
第一种方法非常的简单粗暴,其实不建议使用,但是如果确实嫌麻烦的人,可以点击下图中的圈圈按钮,直接从原始仓库强制拉取。
方法二:创建远程同步
以下详细介绍下远程仓库同步的方法。首先我们从远程clone一个我们自己Fork的仓库到本地来:
$ git clone https://gitee.com/dechin/mindsponge.git
正克隆到 'mindsponge'...
Username for 'https://gitee.com': dechin
Password for 'https://dechin@gitee.com':
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等。完成上述操作后,如果我们在本地执行了一些更新,并且已经add
和commit
过了,那么我们就可以向远程仓库进行push:
$ git push origin develop
$ git push remote develop
只要有权限,就两边都可以pull和push。这样一来,我们在本地开发了一定的时间之后,也可以从remote上pull下来最新的代码,在本地解决好相关的冲突之后,push到自己Fork的分支。最后在完成特性的开发之后,再提交一个Pull Request到远程remote的分支上,这样是一个比较合理的Git操作。
总结概要
版权声明
本文首发链接为:https://www.cnblogs.com/dechinphy/p/git-remote.html
更多原著文章请参考:https://www.cnblogs.com/dechinphy/
腾讯云专栏同步:https://cloud.tencent.com/developer/column/91958
51CTO同步链接:https://blog.51cto.com/u_15561675