解决 fatal: refusing to merge unrelated histories

Git 的报错

一、fatal: refusing to merge unrelated histories

新建了一个仓库之后,把本地仓库进行关联提交、拉取的时候,出现了如下错误:

ankobot@DESKTOP-9IUDMKP MINGW64 /e/workspace/firmware_upload/firmware_upload (master)
$ git pull
fatal: refusing to merge unrelated histories

二、解决方案

在你操作命令后面加 –allow-unrelated-histories
例如:

git merge master --allow-unrelated-histories
$ git pull --allow-unrelated-histories
CONFLICT (add/add): Merge conflict in .gitignore
Auto-merging .gitignore
Automatic merge failed; fix conflicts and then commit the result.

我这里由于使用了官方的 .gitignore 自动合并失败,需要手动合并之后再进行 add、commit 即可

如果你是git pull或者git push报fatal: refusing to merge unrelated histories
同理:
git pull origin master –allow-unrelated-histories / git pull –allow-unrelated-histories
等等,就是这样完美的解决!

git使用码云生成并部署SSH key

1.如何生成ssh公钥

你可以按如下命令来生成 sshkey:

ssh-keygen -t rsa -C "xxxxx@xxxxx.com"  

# Generating public/private rsa key pair...
# 三次回车即可生成 ssh key

查看你的 public key,并把他添加到码云(Gitee.com) SSH key添加地址

cat ~/.ssh/id_rsa.pub
# ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6eNtGpNGwstc....

添加后,在终端(Terminal)中输入

ssh -T git@git.oschina.net

若返回

Welcome to Git@OSC, yourname!

则证明添加成功。


2.怎么添加用户 ssh key?

  1. 点击右上角的1502329104-5071-14154017-ogkd标志,进入个人中心,然后点击左侧的 ssh 公钥后在下图位置填写你的 ssh 公钥
  2. 点击确定,然后验证密码(即你的注册账号密码)就完成了ssh 公钥添加。

1502329104-1149-18115822-miTO

3.项目的 ssh key 和用户的 ssh key 两处地方有什么不同?

项目的 sshkey 只针对项目,且我们仅对项目提供了部署公钥,即项目下的公钥仅能拉取项目,这通常用于生产服务器拉取仓库的代码。 而用户的 key 则是针对用户的,用户添加了 key 就对用户名下的项目和用户参加了的项目具有权限,一般而言,用户的key具有推送和拉取的权限,而项目的 key 则只具有拉取权限。

Git 基本操作

一、安装环境
CentOS: yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel

Debian: apt-get install libcurl4-gnutls-dev libexpat1-dev gettext libz-dev libssl-dev
二、安装Git
CentOS: yum install git-core

Debian: apt-get install git-core

三、创建基础仓库
mkdir /git/test
cd /git/test

git init –bare –shared //初始化基础仓库

四、客户端操作
git clone root@192.168.1.199:/git/test //克隆仓库

然后复制文件到 test 目录

git add * //添加所有文件
git commit -m “初始化版本”
git push //推送到服务器上
五、其他
git add [*|file] //将该文件添加到缓存
git log [–oneline] //使用 git clone 拷贝一个 Git 仓库到本地,让自己能够查看该项目,或者进行修改。
git diff [file name][–cached] //执行 git diff 来查看执行 git status 的结果的详细信息。
git clone [url] //使用 git clone 拷贝一个 Git 仓库到本地,让自己能够查看该项目,或者进行修改。
git init //用 git init 在目录中创建新的 Git 仓库。 你可以在任何时候、任何目录中这么做,完全是本地化的。
git status //查看在你上次提交之后是否有修改。
git commit [-am] //将缓存区内容添加到仓库中。
git reset HEAD //用于取消已缓存的内容。
git rm [filename] //会将条目从缓存区中移除
git mv [filename] //命令做得所有事情就是 git rm –cached 命令的操作

 
Copyright © 2008-2021 lanxinbase.com Rights Reserved. | 粤ICP备14086738号-3 |