GitHub远程仓库无法同步本地文件,git add后提示工作区干净
问题排查与解决步骤
先纠正一个认知错误
git ls-files 默认仅显示已被Git追踪的文件,并非待添加的未追踪文件。如果要查看未被追踪的文件,执行:
git ls-files --others --exclude-standard
逐一排查问题点
检查文件是否被
.gitignore忽略
挑一个你认为应该被提交的文件,执行以下命令查看是否被忽略规则命中:git check-ignore -v 你的文件名如果输出结果包含
.gitignore的路径和对应的规则,说明该文件被忽略了。你可以修改.gitignore移除对应规则,或者用git add -f 文件名强制添加被忽略的文件。确认当前操作目录是Git仓库根目录
执行以下命令获取仓库根目录路径:git rev-parse --show-toplevel对比当前终端的工作目录(
pwd命令查看),如果不在根目录,切换到根目录后再执行git add .。检查工作区与暂存区、仓库的差异
查看工作区和暂存区的文件差异:git diff查看暂存区和仓库的差异:
git diff --cached如果两个命令都没有输出,说明当前工作区的文件和仓库里的版本完全一致,自然没有内容可提交。这种情况你需要确认是否真的修改了文件,或者是否之前已经提交过这些内容。
检查是否存在嵌套Git仓库
如果你的本地目录里有子文件夹自己也是一个Git仓库(里面有.git文件夹),那么外层Git仓库无法追踪内层仓库的文件。可以用find . -name ".git" -type d查看是否有嵌套的.git目录,若有,要么删除内层的.git目录,要么将内层仓库作为子模块处理。
内容的提问来源于stack exchange,提问作者joe44
相关产品推荐
相关产品推荐

