相关文章推荐
闷骚的伤疤  ·  一个 WebSocket ...·  1 年前    · 
被表白的小笼包  ·  Android ...·  1 年前    · 
暗恋学妹的铅笔  ·  javascript - ...·  1 年前    · 
大鼻子的手术刀  ·  javascript - ...·  1 年前    · 

1. 摘要

这篇博客讲述:Git如何同步多个远程仓库,比如本地写好了代码,有一个需求:你既想往Github中push代码,又想往Gitlab中push代码(毕竟Gitlab建立多人私有仓库免费)。
所以这篇博客主要讲的就是:仓库要同时往github, gitlab这两个远程仓库push代码,该怎么做?

2. 前期准备

2.1. 创建一个文件夹,文件夹中随便写一个txt文档,我这里以dual_push为例:
例:~/dual_push/dual_push.txt
2.2. 去Github和Gitlab分别建立一个空白的远程库dual_push.

3. 方法

3.1. 分离push

3.1.1.关联

我们大多时候一个本地库只需要关联一个远程库就行了,关联远程库的命令我们很熟悉:

# git remote add <name> <git-url>
git remote add origin git@github.com:opendvd/dual_push.git

这个时候如果再想关联另一个远程库时,就需要将name改一下了,比如:

# git remote add <name> <git-url>
git remote add gitlab_origin git@gitlab.com:opendvd/dual_push.git

这样就将两个远程仓库和本地仓库关联起来了,可以使用git remote -v来查看,结果为:

gitlab_origin	git@gitlab.com:opendvd/dual_push.git (fetch)
gitlab_origin	git@gitlab.com:opendvd/dual_push.git (push)
origin	git@github.com:opendvd/dual_push.git (fetch)
origin	git@github.com:opendvd/dual_push.git (push)

可以发现存在两个远程库的地址,他们分别都可以进行push和pull。

3.1.2. push
git add dual_push.txt
git commit -m "First commit."
git push -u origin master # git push <repo> <branch>
git push -u gitlab_origin master # git push <repo> <branch>

结果如下,然后分别去远程库查看,可以发现两个远程库都有了dual_push.txt文件:
在这里插入图片描述

3.1.3. pull
git pull origin master # git pull <repo> <branch>
git pull gitlab_origin master # git pull <repo> <branch>

3.2. 合并push

上面的方法表明如果要push两个库,需要分别push两次,下面介绍的方法,可以一次性push到两个仓库。
方法:将另一个远程库的URL添加到现有的远程仓库的URL:

3.2.1. 关联
git add dual_push.txt
git commit -m "First commit."
git remote add origin git@github.com:opendvd/dual_push.git
# git remote set-url -add <name> <url>
git remote set-url --add origin git@gitlab.com:opendvd/dual_push.git

通过git remote -v查看,可以发现这个本地库关联了两个远程库:

origin	git@github.com:opendvd/dual_push.git (fetch)
origin	git@github.com:opendvd/dual_push.git (push)
origin	git@gitlab.com:opendvd/dual_push.git (push)
3.2.2. push
git push -u origin master

效果如下所示,可以发现,一次性push以后,会分别push到两个远程库中:
在这里插入图片描述这样我们就可以像管理一个远程库一样管理多个远程库。
需要关注:只存在一个pull的URL.

4. 总结

4.1 可以发现第一种方法更灵活,第二种方法更简单。

5. 参考文献

https://zhuanlan.zhihu.com/p/82388563

1. 摘要这篇博客讲述:Git如何同步多个远程仓库,比如本地写好了代码,有一个需求:你既想往Github中push代码,又想往Gitlab中push代码(毕竟Gitlab建立多人私有仓库免费)。所以这篇博客主要讲的就是:仓库要同时往github, gitlab这两个远程仓库push代码,该怎么做?2. 前期准备2.1. 创建一个文件夹,文件夹中随便写一个txt文档,我这里以dual_push为例:例:~/dual_push/dual_push.txt2.2. 去Github和Gitlab分别建立 简单的命令行实用程序工具带。 (对于Mac)假定git , adb , gcc是可访问的。 (尽管可能部分缺少它们) git实用程序,用于基于github的工作流程。 在执行有害命令之前,每个git命令都会得到您的确认,直到您告诉它不要这样做(使用-y选项)。 该脚本将询问您有关使用哪个远程服务器,使用哪个分支等的更多信息。所有配置均基于回购协议。 配置存储在~/.reden.json 。 您可以按每个仓库/ w -reset选项重置选项。 git pa :从所有遥控器上修剪。 git sync :与特定的遥控器同步(拉)。 在使用一个主存储库处理拉取请求时特别有用。 git pr :将当前本地分支推送到源,然后打开提取请求页面。 git master :快进开发和master分支,并将合并成master。 git pp :拉并修剪重设分支。 (使用提交日志检查是否基于 “如果你只有锤子,一切看起来都像钉子” 为什么是git 互联网上的存储库很不错,因为它们易于访问,但是当它们变大时,通过移动数据加载它们就变得不那么可行了。 通过USB驱动器共享大文件是很多手动工作,与同事同步保存文件。 想法是使用Internet中的存储库,并在USB驱动器上克隆(如果应使用USB驱动器)。 git有一些内置功能 可以让多人远程控制 每个仓库都是独立的 在基准中添加rsync以进行速度比较 在单独的git存储库中拆分二进制文件和第三方库,然后cmake应测试存储库的版本是否正确 很大的文件可以存储在本地存储中,然后cmake可以测试存储库的不同源 $ docker pull icyleafcn/hpr $ curl -fsSL -o hpr.yml https://raw.githubusercontent.com/icyleaf/hpr/master/config/hpr.example.yml $ docker run --na $ git init将当前路径转换为git仓库 $ git add filename本地添加文件,可以多次添加文件,最后一起提交 $ git commit -m "修改描述"提交所有修改,不添加-m会弹出一个vim让你填充修改描述 在本地同步github $ git remote add localname http://github.com/nzyqq123/filename localname本地路径文件名github的路径文件nzyqq123 github的用户名 $ git branch -M main在本地生成一个分支,-M是替代,不加-M会创建其他分支 $ git push -u first main将本地的first目录推送到远程的main分支中,如果github中没有该分支会自动创建 $ git pull origin m 版本控制工具svn与git区别: svn集成式:SVN在没有联网的时候是拒绝干活的 git分布式:在本地工作完全不需要考虑远程库的存在,也就是有没有联网都可以正常工作.当有网络的时候,再把本地提交推送一下就完成了同步 github作用:国外远程仓库 github官网 https://github.com 码云:国内远程仓库 码云官网 http://git.oschina.net/ git基本操作-本地仓库推到远程仓库(!!!注意仓库里不能有空文件夹,不能有多个.git文件): 1.注意推之前先拉取 git init 初始化下本地仓库 git remote add origin 仓库地址 关联远程git pull origin master 拉取分支名 git add 文件名 提交到暂存区 【git add -A 或git add . 提交本地全部文件】 通常情况下,一个本地 Git 仓库对应一个远程仓库,每次pull和push仅涉及本地仓库和该远程仓库同步;然而,在一些情况下,一个本地仓库需要同时关联多个远程仓库,比如:同时将一个项目发布在 Github 和 Coding 上,以兼顾国内外的访客(顺便一提,本站从近期起即是如此)。 那么,如何让一个本地仓库同时关联多个远程仓库呢? 方法 1:每次push、pull时需分开操作 首先,查看本地仓库关联远程仓库:(假定最初仅关联了一个远程仓库) $ git remote -v origin git ### 回答2: 随着软件开发领域的不断发展,越来越多的团队选择使用git作为版本控制工具,以实现代码的管理和协作。在公司中,通常会有一个远程代码仓库,存放着所有人的代码,团队成员需要通过拉取(pull)代码到本地后进行开发、修改,最后将修改后的代码推送(push)到远程仓库中。本文将介绍如何使用gitbash从公司代码仓库中拉取代码。 步骤一:安装Git工具 首先,需要安装Git工具,可以从官网下载安装(https://git-scm.com/downloads)。安装完成后,打开gitbash命令行工具。 步骤二:克隆代码仓库gitbash中,使用cd命令切换到本地要存放代码的仓库目录。然后使用git clone命令将远程代码仓库克隆到本地,命令格式如下: ```git clone <远程代码仓库地址>``` 例如,公司使用的代码仓库的地址为https://github.com/xxx/xxx.git,可以使用下面的命令将代码仓库克隆到本地: ```git clone https://github.com/xxx/xxx.git``` 此时,git会将代码仓库中的所有代码下载到本地,存放在以仓库名命名的文件夹中。 步骤三:拉取最新代码 当团队中有人对仓库中的代码进行了修改后,需要将修改后的代码同步到本地。在gitbash中,可以使用git pull命令拉取最新代码,命令格式如下: ```git pull``` 此时,git会自动从远程代码仓库拉取最新代码并合并到本地代码中。 以上就是使用gitbash拉取公司代码的步骤。需要注意的是,在拉取代码之前,应该先确保自己拥有对代码仓库的读取权限,否则无法拉取代码。同时,在修改代码之前,也应该先拉取最新代码,以避免出现代码冲突等问题。 ### 回答3: Gitbash是一款强大的Git命令行工具,可以方便地进行代码管理操作。在拉取公司代码前,我们需要先了解一些基本概念: 1. Git仓库:存储代码的地方,包含所有版本的代码和更新记录。 2. Remote:远程仓库,通常是存在于远程服务器上的一个Git仓库。 3. Branch:分支,在Git中常用于开发不同的功能或解决不同的问题。 根据以上概念,我们可以在Gitbash中进行如下步骤拉取公司代码: 1. 配置Git:在Gitbash中通过输入指令git config --global user.name "<username>"和git config --global user.email "<email>"来配置用户名和邮箱。这些信息会在提交代码时作为提交者信息记录。 2. 克隆代码:在Gitbash中通过输入指令git clone <remote_repository_address>来将远程仓库中的代码克隆到本地。在输入远程仓库地址之前,我们需要先向管理员请求授权并获得仓库地址。 3. 切换分支:在Gitbash中通过输入指令git checkout <branch_name>来切换到指定分支。通常情况下我们需要切换到开发分支或主分支进行代码管理。 4. 更新代码:在Gitbash中通过输入指令git pull来获取最新的代码更新。如果有冲突需要手动解决。 5. 提交代码:在Gitbash中通过输入指令git add .、git commit -m "<commit_message>"和git push origin <branch_name>来提交代码更新。这将把代码上传到远程仓库中。 总之,通过Gitbash可以方便地进行代码管理操作。我们可以通过简单的指令来完成代码拉取、更新和提交等操作,提高了开发效率和代码管理质量。 CSDN-Ada助手: 非常感谢博主分享这篇关于Ceres中CostFunctionToFunctor的优化使用讲解的博客,对于我们这些初学者来说非常有帮助。博客结构清晰,内容详尽,对于需要使用Ceres进行优化的人来说是一份宝贵的参考资料。希望博主能够继续分享更多知识,让我们有更多的机会学习和成长。再次感谢博主的辛勤创作! 为了方便博主创作,提高生产力,CSDN上线了AI写作助手功能,就在创作编辑器右侧哦~(https://mp.csdn.net/edit?utm_source=blog_comment_recall )诚邀您来加入测评,到此(https://activity.csdn.net/creatActivity?id=10450&utm_source=blog_comment_recall)发布测评文章即可获得「话题勋章」,同时还有机会拿定制奖牌。