git日常错误及解决办法
记录 Git GitHub 日常操作出错及相关解决办法
# .gitignore 文件不生效
提示
在 git 中如果想忽略掉某个文件,不让这个文件提交到版本库中,在工程根目录下 .gitignore
(如果没有这个文件,手动新建)文件中添加匹配规则
问题:把某些目录或文件加入忽略规则后发现并未生效
.gitignore
只能忽略那些原来没有被追踪(track)的文件,如果该文件已经被纳入了版本管理中,则修改 .gitignore
是无效的。
解决方法: 先从暂存区移除该文件, 即
改变成未被追踪状态
然后再提交
git rm -r --cached dirname/filename
git add .
git commit -m 'update .gitignore'
git push origin main
1
2
3
4
2
3
4
# refusing to merge unrelated histories
问题:从远程仓库 pull 项目到本地的时候提示错误 fatal: refusing to merge unrelated histories
出现该错误的原因有几点:
有一个包含一些提交的新 Git 仓库,当你尝试从现有的远程仓库中 pull。合并变得不兼容,因为分支和远程拉取的历史不同。当你试图合并两个完全不相关的分支时,Git 看到了这种情况,它不知道该怎么做。
.git
目录有问题,它可能在某些时候被意外删除或损坏。如果您克隆或清理了项目,则可能会发生这种情况。此处发生错误是因为 Git 没有有关本地项目历史的必要信息。当您尝试从远程仓库推送或拉取数据时,分支位于不同的
HEAD
位置,并且由于缺乏共性而无法匹配。
我出现的问题是,创建的新远程仓库包含了 README 和 LICENSE,远程的代码没有先 clone 到本地,而是直接在本地项目中 git init, 所以不兼容。
解决办法: 根据提示的
unrelated histories
使用-–allow-unrelated-histories
参数,让 git 允许提交不关联的历史代码
git pull origin main -–allow-unrelated-histories
git push origin main --allow-unrelated-histories
1
2
2
编辑此页 (opens new window)
上次更新: 2022/07/05, 10:45:41