git推送项目到码云与github

一.push到码云

1.创建远程仓库

登录码云后,建立一个仓库,只填写仓库名就ok,然后直接创建

在这里插入图片描述
在这里插入图片描述

2.创建本地库(如果没有)

若本地没有仓库,需要先创建.先设置用户名邮箱(随意名随意邮箱都可以),创建项目并初始化后,随便建立一个文件如README.md,随便写点内容,提交到本地库

git config  --global user.name 花落知多少
git config  --global user.email 梦醒何处@163.com
mkdir gitrepo-test
cd gitrepo-test/
git init
vim README.md 
git add README.md 
git commit -m "first commit" README.md 

在这里插入图片描述

3.关联远程仓库地址

https://gitee.com/用户名/仓库名,注意按实际添加

 git remote add origin https://gitee.com/HeartFYang/testdemo.git
 git remote -v

在这里插入图片描述

4.push到远程库

需要输入用户名和密码

git push origin master

在这里插入图片描述
没问题如下:
在这里插入图片描述
当然如果想修改,则本地修改后提交到版本库,再push就好.

5.无法push的问题

如果push时,出现如下提示:hint: Updates were rejected because the remote contains work that you do

To https://gitee.com/HeartFYang/HelloGitee
 ! [rejected]        master -> master (fetch first)
error: failed to push some refs to 'https://gitee.com/HeartFYang/HelloGitee'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

是远程库已经有工作的代码,不允许直接覆盖.比如,你创建仓库的时候勾选了使用模板redme.md来初始化,如下图,可以看到,创建仓库的时候会生成中文和英文两个readme文件,所以无法更新.解决办法有两种

在这里插入图片描述

1.强推覆盖

此时可以强推(新项目推荐,可以覆盖掉):执行 git push -f https://gitee.com/HeartFYang/HelloGitee master
-f参数:force.后面跟远程仓库地址(相当于get remote add origin xxxxx)再选择master分支

 git push -f  https://gitee.com/HeartFYang/HelloGitee master 
2.先拉后推(推荐)

注意到hint: (e.g., ‘git pull …’) before pushing again.这个提示,我们不妨push之前先pull,
执行pull,却报了一个致命错误fatal: refusing to merge unrelated histories,拒绝合并不相关的记录

git pull https://gitee.com/HeartFYang/HelloGitee

在这里插入图片描述
执行git pull --help 在Options related to merging选项下找到如下参数.可以看到,默认情况下,git merge命令拒绝合并没有共享共同祖先的历史记录。当合并两个独立项目的历史记录时,可以使用此选项来覆盖此安全性。

--allow-unrelated-histories
By default, git merge command refuses to merge histories that do not share a common ancestor. This option can be used to override this safety when merging histories of two
projects that started their lives independently. As that is a very rare occasion, no configuration variable to enable this by default exists and will not be added.

加上该参数后,再执行

git pull https://gitee.com/HeartFYang/HelloGitee --allow-unrelated-histories

可以看到,拉取成功了,但README.md有冲突,因为我们本地库也有一个README.md,且里面也有内容,因此冲突了.这个很容易解决.在这里插入图片描述
在这里插入图片描述
修改该README.md,去掉冲突特殊符号.提交后再push.

README.md //去掉冲突符号,修改满意为止
git add README.md 
git commit -m "解决拉取合并冲突后的提交" 
git push https://gitee.com/HeartFYang/HelloGitee master

此时可以看到,push成功了.
在这里插入图片描述
查看码云对应的仓库,也没问题,另外可以看到我们修改后的readme.md的内容
在这里插入图片描述

二.ssh免密登录

https每次push需要输入用户名密码挺麻烦的,我们可以使用ssh免密推送

1.客户端生成秘钥

 rm -rf /root/.ssh/
 ssh-keygen -t rsa -C "你的email地址"

一路enter默认如下,进入当前系统根目录的.ssh目录下,
在这里插入图片描述

2.将id_rsa.pub 的秘钥复制到自己的码云的ssh秘钥里

cat ./id_rsa.pub 

标题随意,将秘钥粘进去,确定验证.
在这里插入图片描述

3.关联远程仓库的ssh地址

进入到要push的仓库,点击克隆/下载,选择ssh,复制地址(git@gitee.com:HeartFYang/HelloGitee.git),注意此时push应该push 到这个ss地址.
在这里插入图片描述
方便起见还是给这个ssh地址起个别名.进入本地库,执行如下命令:

 git remote add ssh_gitee git@gitee.com:HeartFYang/HelloGitee.git
 git remote -v

在这里插入图片描述
现在,我们直接push

 git push ssh_gitee master

在这里插入图片描述
因为版本没有变化,所以没push,我们稍微修改一下READNE.md.提交后再push

vim README.md 
git add README.md 
git commit -m "ssh免密登录测试" README.md 
git push ssh_gitee master

查看仓库,push successfully
在这里插入图片描述

三.push到github

和码云一样,登录建立仓库
在这里插入图片描述
在这里插入图片描述
按照提示直接操作

git init
git add README.md
git commit -m "first commit"
git remote add origin https://github.com/HeartSole/HelloDemo.git
git push -u origin master

四.实现码云和github同时push

这个很简单,只要同时关联了码云仓库的地址和github仓库的地址就OK,我们可以分别为他们的https和ssh地址起个别名.分别执行push就ok.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值