1.本地仓库与远程不一致
1.1 场景概述
1、本地初始化了git仓库,放了一些文件进去并进行了add操作和commit提交操作;
$git add -A
$git commit -m "***"
2、github/gitee 上创建了 gi t仓库并建立了README文件;
3、本地仓库添加了gitee 上的git仓库作为远程仓库,起名origin;
$git remote add origin 仓库地址
1.2 产生的问题
本地仓库在想做同步远程仓库到本地为之后本地仓库推送到远程仓库做准备时报错了,错误如下:
fatal: refusing to merge unrelated histories
(拒绝合并不相关的历史)
1.3 解决方法
出现这个问题的最主要原因还是在于本地仓库和远程仓库实际上是独立的两个仓库。假如我之前是直接clone的
方式在本地建立起远程 gitee 仓库的克隆本地仓库就不会有这问题了。
所以可以在pull命令后接着 --allow-unrelated-history 选项来解决这个问题。
这个选项可以合并两个独立启动仓库的历史
命令:
$git pull origin master --allow-unrelated-histories
执行完上述命令后,便可将远程仓库上的代码拉取到本地。
2. .gitignore文件配置未生效
2.1场景概述
在idea中新创建了 .gitignore文件,.gitignore中已经标明忽略的文件目录下的文件,git push的时候还会出现在
push的目录中;或者用git status查看状态,想要忽略的文件还是显示被追踪状态。
2.2 原因分析
git忽略目录中,新建的文件在git中会有缓存,如果某些文件已经被纳入了版本管理中,就算是在.gitignore中已
经声明了忽略路径也是不起作用的;
这时候我们就应该先把本地缓存删除,然后再进行git的提交,这样就不会出现忽略的文件了。
2.3 解决方法
git清除本地缓存(改变成未track状态),然后再提交:
$ git rm -r --cached .
$ git add .
$ git commit -m 'update .gitignore'
$ git push -u origin master
执行完上述命令后,.gitignore文件的配置便可生效。