本地新建项目夹,push到远程git:! [rejected] master -> master (fetch first),fatal: refusing to merge unrelated histories, ! [rejected] master -> master (non-fast-forward)

    在自己创建一个新的代码仓库,然后本地创建了一个项目夹,我们需要将文件的文件夹里面的内容上传到git,遇到一些错误信息。

    1.首先创建仓库:

本地新建项目夹,push到远程git:! [rejected] master -> master (fetch first),fatal: refusing to merge unrelated histories, ! [rejected] master -> master (non-fast-forward)_第1张图片
new repository

    创建一个名字为gittest的仓库,在本地电脑创建一个gittest的项目夹用终端进入输入命令:

cd /路径/GitTest

git init         //创建.git

    创建好.git文件以后,一般iOS项目中需要忽略一些不必要上传的文件,比如说mac的默认文件,需要touch一个.gitignore文件将忽略文件添加进去。

touch .gitignore 

vim .gitignore   //复制忽略文件填写进去

    2.将文件提交到暂存区:

git add .                //他会监控工作区的状态树,使用它会把工作时的所有变化提交到暂存区,包括文件内容修改(modified)以及新文件(new),但不包括被删除的文件。

git add -u             //仅仅更新已add的文件,将修改的文件提交到缓存区,add -u 不会提交新的文件   update 包括删除的文件

git add -A            //以上2个的总和    all  包括删除的文件

本地新建项目夹,push到远程git:! [rejected] master -> master (fetch first),fatal: refusing to merge unrelated histories, ! [rejected] master -> master (non-fast-forward)_第2张图片
git1.x版本
本地新建项目夹,push到远程git:! [rejected] master -> master (fetch first),fatal: refusing to merge unrelated histories, ! [rejected] master -> master (non-fast-forward)_第3张图片
git 2.x版本

3.本地关联git服务器

git commit -m "这次更新的描述"

git remote add origin https://github.com/struggle3g/GitTest.git

4.push到远程服务器

git push -u origin master

    到这步以后出现了错误:

本地新建项目夹,push到远程git:! [rejected] master -> master (fetch first),fatal: refusing to merge unrelated histories, ! [rejected] master -> master (non-fast-forward)_第4张图片
! [rejected] master -> master (fetch first)

    经过分析得出一个结论需要

git fetch origin          //需要从远程分支拉取代码到本地缓存区域,本地代码不合并。

git merge origin master //将origin merge 到 master 上

git merge origin/master //将origin上的master分支 merge 到当前 branch 上

到了这部分又发生了错误,通过  git无法pull仓库refusing to merge unrelated histories,rejected master -> master (non-fast-forward)

拒绝合并不相关的历史版本
没有内容需要合并

   问题在与,一个自己在本地创建的仓库,跟远程git的仓库一点记录没有,git merge origin master 合并到网上的时候,没有任何数据需要合并,git merge origin/master 合并到本地master的默认分支上面,但是本地缓存的内容没有远程分支的历史,本地历史跟远程分支为空,无法进行合并,git在最新2.9.2,merge、pull两个不同的项目,没法进行下去。

git merge origin/master --allow-unrelated-histories  //合并项目忽略不是一个项目问题

    或者直接用pull模式,不用fetch merge  直接pull   从结果的考虑来说pull = fetch + merge,具体过程有点不同,这篇就不讨论这个问题(挖坑令起一个)。

合并不同项目成功后

    Push数据

git push origin master     //上传本地当前分支代码到master分支

本地新建项目夹,push到远程git:! [rejected] master -> master (fetch first),fatal: refusing to merge unrelated histories, ! [rejected] master -> master (non-fast-forward)_第5张图片
push成功

本地新建项目夹,push到远程git完成

    遇到的问题:1.平时的pull、push、merge、分布式等等  fetch、本地预存区,这些都是怎么运作,怎么实现的(当考虑到这些以后发现其实自己是不过是会一些基本的运用,反差很大,带着疑问的时候,就想去搞清楚这些,脚踏实地!)


参考:

    git add -A 和 git add . 的区别

    git无法pull仓库refusing to merge unrelated histories

    rejected master -> master (non-fast-forward)

    git无法pull仓库refusing to merge unrelated 

    Pro Git 简体中文版

你可能感兴趣的:(本地新建项目夹,push到远程git:! [rejected] master -> master (fetch first),fatal: refusing to merge unrelated histories, ! [rejected] master -> master (non-fast-forward))