git同步两个(多个)仓库本地仓库网络仓库

境:

远程仓库是gitee的,地址:git@gitee.com:你的用户名/hello.git

本地仓库,地址:git@192.168.200.132:/home/gitrepo/hello.git

 

没有仓库:

先创建仓库:新建一个叫 hello 的项目仓库

mkdir hello
cd hello
git init
touch README.md
git add README.md
git commit -m "first commit"
git remote add origin git@gitee.com:你的用户名/hello.git
git push -u origin master

  -u是提示要输入用户名、密码,可以将自己的公钥Pub放到gitee后台,提交时候就不用输入密码了。在Linux下可能输入密码也提交不成功,所以最好就是使用公钥。

 

windows下如何生成公钥和私钥:

首先Windows操作系统需要安装git.
安装完成后,再到任意的文件夹内,点击右键.选择git bash here
打开之后,输入ssh-keygen,一路按enter键.
全部结束后,再到C:\Users\Administrator\.ssh 文件夹下,打开id_rsa.pub文件,复制文件内的公钥.
注意:.ssh是隐藏文件,需开启文件显示

 

Linux Centos7生成公钥和密钥:

yum -y  install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel git

 

输入命令一路回车即可。

[root@CentOs7-2 ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:6YANhNQ13h11PNUu******nkJtykfiN1aUZJt0 root@CentOs7-2
The key's randomart image is:
+---[RSA 2048]----+
| oo**+*+ooo.....o|
|  +o**o=o=E...= .|
| . o.Bo.+ .. . = |

|       o.        |
|        .        |
|                 |
|                 |
+----[SHA256]-----+

  证书创建完成。保存在当前用户主目录下.ssh文件下,"点" 开头的文件夹是隐藏文件夹,可以用 ls -a 可以看到。 

 

已有仓库:

先给仓库设置用户: 自己使用或测试随便填,实际生产要填真的,方便管理和溯源

#Git 全局设置:
git config --global user.name "你的名字"
git config --global user.email "你的邮箱"

 

删除之前的关联:

cd hello
git remote rm origin

   

方法一: 两个仓库分别设置名字,分别推送同一份代码

将目录和远程版本库gitee关联,注意add后的local、gitee是用来区分俩个版本库的,随便写,不重复就行、

cd hello
git remote add local git@localhost:/home/gitrepo/hello.git
git remote add gitee git@gitee.com:你的用户名/hello.git

向远程库推送代码

git push local master
git push gitee master

  

方法二:同时推送同一份代码,到两个仓库

设置,将本地目录和远程版本库gitee关联到origin别名上

cd hello/
git remote add origin git@localhost:/home/gitrepo/hello.git
git remote set-url --add origin git@gitee.com:你的用户名/hello.git

推送

git push origin --all

  

 

 

 

====================================    错误 收集    ====================================

错误一:fatal: Not a git repository (or any of the parent directories): .git

翻译:提示说没有.git这样一个目录

解决:

#命令行 输入 
$ git init  

  

错误二:

error: src refspec master does not match any.
error: failed to push some refs to 'origin'

翻译:master是一个空目录。

解决:

1.首次创建,目录里什么也没有,可以新建个文件,内容随意,就是先随便写放点东西。

$ touch READMD

2.提交了一个空版本库,虽然你在这个文件夹放了文件,但是你没有执行$git add . 和git commit -m "备注" 这命令,所以git不知道你要提交什么。

$ git add . 
$ git commit -m "

3.新建装git软件,没有设置name 和 mail

#Git 全局设置:
git config --global user.name "你的名字"
git config --global user.email "你的邮箱"

4.没有初始化仓库 。如有个项目hello 要放本地D:\git-repo\下

$ cd d:\git-repo
$ git init
$ git remote add git@gitee.com:你的用户名\hello.git
$ cd hello
$ git add .
  # 查看暂存区状态
$ git status 
  # 提交到本地版本库里
$ git commit -m "备注"
  # 提交远程gitee仓库里
$ git push origin master

 如果是初学者操作过程中出现很问题,那直接把目录下隐藏的“.git” (注意git前有个点) 文件夹删除,重新克隆一份git clone。在开始。

  

  

 

参考:

https://www.shuzhiduo.com/A/lk5aqqnl51/

posted @ 2020-12-04 09:27  悟透  阅读(3612)  评论(0编辑  收藏  举报