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项目,也是空项目!
这边就不演示了。
多平台配置
上边只演示 如何项目同步到单个平台,如何同步到多个平台的不同仓库下呢?
Github: git@github.com:A2Data/MockData.git
Gitee: git@gitee.com:sqlsq_admin/mock-data.git
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
# 强制推。
后续优化之后,再进行升级。