git同步两个(多个)仓库本地仓库网络仓库
环境:
远程仓库是gitee的,地址:git@gitee.com:你的用户名/hello.git
本地仓库,地址:git@192.168.200.132:/home/gitrepo/hello.git
没有仓库:
先创建仓库:新建一个叫 hello 的项目仓库
1 2 3 4 5 6 7 8 | 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生成公钥和密钥:
1 | yum -y install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel git |
输入命令一路回车即可。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | [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 可以看到。
已有仓库:
先给仓库设置用户: 自己使用或测试随便填,实际生产要填真的,方便管理和溯源
1 2 3 | #Git 全局设置: git config --global user.name "你的名字" git config --global user.email "你的邮箱" |
删除之前的关联:
1 2 | cd hello git remote rm origin |
方法一: 两个仓库分别设置名字,分别推送同一份代码
将目录和远程版本库gitee关联,注意add后的local、gitee是用来区分俩个版本库的,随便写,不重复就行、
1 2 3 | cd hello git remote add local git@localhost: /home/gitrepo/hello .git git remote add gitee git@gitee.com:你的用户名 /hello .git |
向远程库推送代码
1 2 | git push local master git push gitee master |
方法二:同时推送同一份代码,到两个仓库
设置,将本地目录和远程版本库gitee关联到origin别名上
1 2 3 | cd hello/ git remote add origin git@localhost:/home/gitrepo/hello.git git remote set-url --add origin git@gitee.com:你的用户名/hello.git |
推送
1 | git push origin --all |
==================================== 错误 收集 ====================================
错误一:fatal: Not a git repository (or any of the parent directories): .git
翻译:提示说没有.git这样一个目录
解决:
1 2 | #命令行 输入 $ git init |
错误二:
error: src refspec master does not match any.
error: failed to push some refs to 'origin'
翻译:master是一个空目录。
解决:
1.首次创建,目录里什么也没有,可以新建个文件,内容随意,就是先随便写放点东西。
1 | $ touch READMD |
2.提交了一个空版本库,虽然你在这个文件夹放了文件,但是你没有执行$git add . 和git commit -m "备注" 这命令,所以git不知道你要提交什么。
1 2 | $ git add . $ git commit -m " |
3.新建装git软件,没有设置name 和 mail
1 2 3 | #Git 全局设置: git config --global user.name "你的名字" git config --global user.email "你的邮箱" |
4.没有初始化仓库 。如有个项目hello 要放本地D:\git-repo\下
1 2 3 4 5 6 7 8 9 10 11 | $ 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。在开始。
参考:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!