执行git pull时遇未跟踪文件将被覆盖问题,已尝试命令仍未解决
解决Git Pull时未追踪文件被覆盖的问题
问题原因
本地存在未被Git追踪的文件main/projects/banking_web/WebContent/WEB-INF/security/RIBprivate.key,而远程仓库中现在也新增了同名文件,执行git pull时Git会阻止合并以避免覆盖本地文件。你之前执行的git clean -f -d可能未处理到该文件(比如文件被.gitignore匹配、路径识别问题),git reset --hard仅针对已追踪文件的修改,因此无效。
解决方案
方案1:备份本地文件后删除,拉取远程代码
这是最直接的方式,确保顺利同步远程最新代码:
- 先将文件备份到本地安全目录:
mkdir -p ~/git_backup/ cp main/projects/banking_web/WebContent/WEB-INF/security/RIBprivate.key ~/git_backup/ - 删除本地未追踪的目标文件:
rm main/projects/banking_web/WebContent/WEB-INF/security/RIBprivate.key - 执行拉取操作:
git pull
方案2:保留本地文件并合并(需保留本地内容时用)
如果本地文件有需要保留的内容,可先将其纳入Git追踪再合并:
- 将未追踪文件添加到暂存区:
git add main/projects/banking_web/WebContent/WEB-INF/security/RIBprivate.key - 执行拉取,此时Git会提示冲突:
git pull - 打开文件手动解决冲突后,提交合并结果:
git add main/projects/banking_web/WebContent/WEB-INF/security/RIBprivate.key git commit -m "Merge RIBprivate.key with remote version"
验证操作
完成步骤后,执行git status确认工作区干净,再对比本地文件与远程版本是否一致。
内容的提问来源于stack exchange,提问作者Bidyanarayan Sahu
相关产品推荐
相关产品推荐

