使用 git 将代码推送到多个仓库

起因

起初,在 GitHub 建了一个仓库,200+ 的 commits 。后来(终于在眼泪中明白。。。误),在 Gitee 建了一个仓库,复制了一份代码,之后没在管 GitHub,Gitee 上又随之进行了30+ 次 commits,这是前景。最后为了省劲,要用 git 将 Gitee 的代码一次推送到两个仓库。方法如下,因为我只要 push 上去就好了,不需要分别来 pull 远端的仓库,只是我写着玩的小项目,我将 .git 文件下的 config 作了如下修改:

[core]
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
symlinks = false
ignorecase = true
[remote "origin"]
url = https://gitee.com/xxxx/xxx.git
fetch = +refs/heads/*:refs/remotes/origin/*
+ [remote "all"]
+ url = https://gitee.com/xxx/xxx.git
+ url = https://gitHub.com/xxx/xxx.git
[branch "master"]
remote = origin
merge = refs/heads/master

这样我只需要 git push all 就可以同时 将原来只在 Gitee 仓库的代码 pushGitHub 仓库了。当然了执行这个操作,代码成功 pushGitee,但要求先要 pull GitHub 上的仓库,才能 push 上去,(pull 是不可能 pull 的,这辈子只能 push 这样子。。。),所以我选择强推,一顿操作猛如狗

git push all -f

回车一敲(大力出奇迹!),ok,办了! 打开 GitHub,GitHub 仓库原来的所有 commits 全没了,同步为 Gitee 仓库一样的 30+ commits!

学习一番


百度挺好。


彪悍!!!



I love my motherland!

--force

  • --force 适用于所有推送的 ref ,因此在 push.default 设置为 matching 或配置了多个推送目标的情况下使用它remote.*.push 可能会覆盖当前分支以外的其他 ref(包括严格位于其远程副本后面的本地ref)。
  • 常见情况,当您尝试推送时,您可能会遇到非快进拒绝,即使您将其推送到其他人都没有推送到的存储库中也是有可能的。自己推送提交 A 之后(在本节的第一张图片中),将其替换为 git commit --amend 以生成提交 B ,然后尝试将其推出,因为忘记了您已经将 A 退出了。在这种情况下,并且仅当您确定在此期间没有人提取了较早的提交 A(并开始在其上构建)时,才可以运行 git push --force 来覆盖它。换句话说,git push --force 是一种保留方法,用于您确实要失去历史记录的情况。

解决办法

如果不幸遇到类似情况需要恢复,请参考这篇 文章 吧!

使用 git 将代码推送到多个仓库的更多相关文章

  1. Git撤回已经推送(push)至远程仓库提交(commit)的版本

    背景 所以,经常会遇到已经提交远程仓库,但是又不是我想要的版本,要撤下来. 回退版本一般使用git reset,又分为: # 不删除工作空间改动代码,撤销commit,不撤销git add . git ...

  2. Git把本地代码推送到远程github仓库

    运用Git版本控制系统进行代码的管理,以便于团队成员的协作,由于之前是使用svn来进行版本控制,所以对于Git使用还有待熟练掌握.Git与svn类似,个人认为两者之间比较直观的区别就是 Git 不需要 ...

  3. IDEA将代码推送至远程GitHub仓库

    1 在项目根路径下添加.gitignore文件 2 创建本地git仓库 3 git add操作 快捷键 ctrl+alt+a 4 git commit操作 快捷键ctrl+k 5 git push操作 ...

  4. 将已有Git库代码推送到新建库中

    cd /path/to/your/git/repo/ git remote -v git remote rm origin git remote add origin ssh://abc@gmail. ...

  5. 将本地的代码推送到公网的github账号去

    将本地的代码推送到公网的github账号去 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 最近工作上需要用到github账号,拜读了一位叫廖雪峰的大神的文档,把git的前世今生说的 ...

  6. git 本地项目推送到远程服务器

    3进入本地电脑的将要上传的项目的目录下面 1)git  init 初始化一个git 2) vim .gitignore 新增以及编写这个文件 node_modules/ 意思就是上传的时候忽略这个文件 ...

  7. 将本地项目推送到远程gitee仓库(通过git命令)

    只有经历过地狱般的磨砺,才能练就创造天堂的力量: 只有流过血的手指,才能弹出世间的绝响 将本地的项目推送到远程gitee仓库 本地新建的Java项目,想推送到远程gitee仓库或者git仓库,你需要两 ...

  8. git 创建标签推送远程分支

    目录 git 创建标签推送远程分支 查看tag 创建tag 推送标签到远程仓库 删除tag git 创建标签推送远程分支 标签概念: tag, 对于迭代频繁的项目. 每一个标签可以理解为一个版本. 创 ...

  9. 键盘侠Linux干货| 使用SSH方式推送文件至github仓库

    前言 作为一名优秀的计算机从业人员,相信大家github应该都知道吧.(优秀的代码托管工具) 但是由于平常使用的https方式克隆的本地仓库,每次git push时都需要输入帐号密码才能将我们修改的文 ...

随机推荐

  1. [转]爬虫 selenium + phantomjs / chrome

    目录 selenium 模块 安装 phantomjs 浏览器 安装 chromedriver 接口 安装 对比两个接口 整合使用 基本实例 常用属性方法 定位节点 节点操作 其他操作 实例解析 - ...

  2. MySQL面试(二)

    1.为什么索引遵循最左匹配原则? 当B+树的数据项是符合的数据结构,比如(name,age,sex)的时候,B+树是按照从左到右的顺序建立搜索树的.比如当(张三,20,F)这样的数据来检索的时候,b+ ...

  3. 2018-6-29-PTA-6-2-多项式求值

    title author date CreateTime categories PTA 6-2 多项式求值 lindexi 2018-06-29 15:24:28 +0800 2018-6-14 22 ...

  4. classpath*与classpath

    classpath*:的出现是为了从多个jar文件中加载相同的文件. classpath:只能加载找到的第一个文件.

  5. 洛谷——P1012拼数字符串操作(拼接排序)

    #include<bits/stdc++.h> using namespace std; bool cmp(const string &a,const string &b) ...

  6. Jenkins+Git+Gitlab+Ansible实现持续集成自动化部署静态网站(一)

    在之前已经写了关于Git,Gitlab以及Ansible的两篇博客<Git+Gitlab+Ansible剧本实现一键部署Nginx--技术流ken>,<Git+Gitlab+Ansi ...

  7. MFC_对话框_访问控件_7种方法_A

    访问对话框控件的七种方法 方法一. GetDlgItem()->GetWindowText(); GetDlgItem()->SetWindowText(); 方法二. GetDlgIte ...

  8. Delphi XE里的StrPas要注意哦(要让StrPas知道哪里是字符串结束)

    废话不多说了,直接上例子解说: procedure TForm1.Button1Click(Sender: TObject);var  aa: array[0..1]of AnsiChar;  bb1 ...

  9. 浅析 Nginx 网络事件

    Nginx 是一个事件驱动的框架,所谓事件主要指的是网络事件,Nginx 每个网络连接会对应两个网络事件,一个读事件一个写事件.在深入了解 Nginx 各种原理及在极端场景下的一些错误场景处理时,需要 ...

  10. JavaScript DOM事件对象的两个小练习 | 学习内容分享

    Event 对象 Event 对象代表事件的状态,比如事件在其中发生的元素.键盘按键的状态.鼠标的位置.鼠标按钮的状态. 事件通常与函数结合使用,函数不会在事件发生前被执行! 本文用于记录个人学习过程 ...