git - 如何摆脱 git 中的虚假更改?

标签 git version-control github whitespace

我是 PortableGit 1.7.0.2 的快乐用户。今天我想从 GitHub.com 存储库中 pull 项目更改,所以我执行了 git pull。它失败并显示以下消息:错误:您对“main.rb”的本地更改将被 merge 覆盖。正在中止。。我不关心本地更改,所以我输入了 git reset --hard HEAD(git clean from here 也没有帮助),但它没有工作。当询问 git status 时,我仍然能够看到文件已修改。 git diff 显示文件的每一行都已修改,而 git diff -b 显示没有任何差异,所以我猜这是一个行结束问题。这很奇怪,因为代码仅从 Windows 机器推送。

无论如何,问题是:如何忽略本地的虚假更改并与远程存储库中的最新更改 merge ?

最佳答案

首先,您是否尝试过 git clean -f(注意“-f”)?
来自 git config手册页:

clean.requireForce

A boolean to make git-clean do nothing unless given -f or -n. Defaults to true.

其次,您是否将 autocrlf 设置为 false as I mention in this question ?
(即使从 Windows 机器推送到 Windows PC,带有 Unix eol 的文本文件也会被转换为 Windows eol)

处理好这两点后,您应该可以 pull 了。

关于git - 如何摆脱 git 中的虚假更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3024298/

相关文章:

git - Ansible:使用 pip 从私有(private) git repo 安装包

java - Maven - 将代码发布到 GitHub 时出错(推送后挂起)

sql-server - SqlServer 存储过程和 View 的版本控制/代码存储库

version-control - TFS 结构 - 多个项目还是单个项目?

powershell - 逐行分割字符串并进行变量化,即将其分配给 GITHUB_OUTPUT - 工作流程

git - 从 Github 存储库更新 GitLab 存储库

Git卡在状态/添加/提交

git - 无法识别“gh”... - 尝试从命令提示符创建 GitHub 存储库时出错

git - 如何为 git status 的输出打开寻呼机?

git - 将一个 Subversion 存储库项目拆分为两个 Git 存储库