Git 将一个项目同步到多平台上。

Git 同时提交到多平台

适用背景:

  • 同一项目同步到多个平台上
  • Github
  • Gitee

项目实战

以MockData项目为例子。

MockData

常规操作

我们可以先把项目代码 push 到 gitee上。

1、克隆在Gitee创建好的空项目

# 创建一个文件夹
# 再该文件夹下边 使用Git进行如下操作

git clone git@github.com:A2Data/mockdata.git

就会得到如图所示:

2、然后我们可以把本地的项目文件放到该目录下

3、使用git上传该项目到 Gitee上

git add. #添加

git commit -m  "更新信息"

git push # 提交

详细运行过程如下:

JackFeng@JackFeng MINGW64 /d/学习/DataDict/mock-data (master)
$ ll
total 41
drwxr-xr-x 1 JackFeng 197121    0  7月 12 22:09 __pycache__/
-rw-r--r-- 1 JackFeng 197121  746  7月 12 22:07 config_all.conf
-rwxr-xr-x 1 JackFeng 197121 8779  6月 28 21:15 FakerData.py*
-rwxr-xr-x 1 JackFeng 197121 1848  6月 29 14:21 FunctionClassConfig.py*
-rw-r--r-- 1 JackFeng 197121    0  8月 31 14:34 LICENSE
-rwxr-xr-x 1 JackFeng 197121  168  7月 12 22:00 main.py*
-rwxr-xr-x 1 JackFeng 197121 6644  7月 12 22:49 mock.py*
-rw-r--r-- 1 JackFeng 197121 3006  7月 12 21:56 Mock数据使用说明.md
drwxr-xr-x 1 JackFeng 197121    0  7月  8 12:26 pools/
-rw-r--r-- 1 JackFeng 197121 1008  8月 31 14:34 README.en.md
-rw-r--r-- 1 JackFeng 197121 1227  8月 31 14:38 README.md

JackFeng@JackFeng MINGW64 /d/学习/DataDict/mock-data (master)
$ git add .

JackFeng@JackFeng MINGW64 /d/学习/DataDict/mock-data (master)
$ git commit -m "mockdata"
[master 8e72f4b] mockdata
 16 files changed, 1519 insertions(+)
 create mode 100644 .idea/inspectionProfiles/profiles_settings.xml
 create mode 100644 .idea/misc.xml
 create mode 100644 .idea/mockdata-kath.iml
 create mode 100644 .idea/modules.xml
 create mode 100644 .idea/workspace.xml
 create mode 100644 FakerData.py
 create mode 100644 FunctionClassConfig.py
 create mode 100644 "Mock\346\225\260\346\215\256\344\275\277\347\224\250\350\257\264\346\230\216.md"
 create mode 100644 __pycache__/FakerData.cpython-37.pyc
 create mode 100644 __pycache__/FunctionClassConfig.cpython-37.pyc
 create mode 100644 __pycache__/mock.cpython-37.pyc
 create mode 100644 config_all.conf
 create mode 100644 main.py
 create mode 100644 mock.py
 create mode 100644 pools/majors.csv

JackFeng@JackFeng MINGW64 /d/学习/DataDict/mock-data (master)
$ git push
Enumerating objects: 24, done.
Counting objects: 100% (24/24), done.
Delta compression using up to 8 threads
Compressing objects: 100% (20/20), done.
Writing objects: 100% (22/22), 21.43 KiB | 1.19 MiB/s, done.
Total 22 (delta 1), reused 0 (delta 0)
remote: Powered by GITEE.COM [GNK-5.0]
To gitee.com:sqlsq_admin/mock-data.git
   562b3ee..8e72f4b  master -> master

JackFeng@JackFeng MINGW64 /d/学习/DataDict/mock-data (master)


4、查看Gitee提交记录

此时发现已经不是空项目了。

Github

创建完成之后的Github项目,也是空项目!

这边就不演示了。

多平台配置

上边只演示 如何项目同步到单个平台,如何同步到多个平台的不同仓库下呢?

1、通过命令添加

# 添加第一个仓库

git remote add origin git@gitee.com:sqlsq_admin/mock-data.git  # 默认情况下 就是origin

# 添加第二个仓库

git remote set-url --add origin git@github.com:A2Data/MockData.git

# 如果还有其他,则可以像添加第二个一样继续添加其他仓库。

# 提交

git push origin --all

2、仓库状态查看

git log

git status

3、 .git/config , 配置

可以看到目前只有一个!也可以直接打开**.git/config** 这个文件进行配置。

git remote set-url --add origin  git@github.com:A2Data/MockData.git

git remote

git remote -v

4、配置方式

方法一: 使用 git remote add 命令
# 1、本地仓库与远程仓库关联起来,再查看一下远程仓库情况

git remote add origin git@gitee.com:sqlsq_admin/mock-data.git

git remote -v

# 2、使用如下命令再添加另一个远程仓库

git remote add github git@github.com:A2Data/MockData.git

# 3、 再次查看远程仓库的情况,可以看到已经有两个远程仓库了。然后再使用相应的命令 push 到对应的仓库就行了。*这种方法的缺点是每次要* push *两次。*

git  push origin master:master

git  push github master:master
方法二: 使用 git remote set-url 命令
# 1、删除方法一的 sundyn 远程仓库。

git remote rm mockdata

# 2、使用如下命令添加远程仓库。

git remote set-url --add origin git@github.com:A2Data/MockData.git

# 3、查看远程仓库情况。可以看到 github 远程仓库有两个 push 地址。*这种方法的好处是每次只需要* push *一次就行了。*

git remote -v

git push origin master:master

异常

配置的方式就是两种,这个异常的原因 是因为github 和gitee 账号不用。key不同链接失效。

解决方案:

git push origin master:master -f 
# 强制推。

后续优化之后,再进行升级。

评论