推送到GitHub develop分支的代码为何与本地Eclipse显示缩进不一致
缩进不一致问题排查
你遇到的本地显示正常、远程分支缩进不符的问题,按出现概率从高到低排查即可:
- 提交推送的版本和本地当前查看的版本不一致
你现在在Eclipse里看到的正确缩进,很可能是本地工作区的未提交改动:之前你提交推送的时候,提交的代码里message行就已经存在缩进错误,之后你在本地Eclipse里修正了缩进,但没有重新commit+push,就会导致本地打开的文件是改对的,远程develop分支还是旧的错误版本。
验证方式:- 在Eclipse的Git暂存视图查看有没有未提交的改动
- 或在项目根目录执行
git status,如果显示有修改的文件未暂存/未提交,就是这个问题,重新提交推送即可。
- Tab和空格混合使用,不同工具的渲染规则不同
如果你本地Eclipse、Git、GitHub的缩进渲染宽度配置不统一,即使实际文件里的空白符没有变化,也会显示出缩进差异:
比如你编辑message行时不小心按了Tab而非空格,其他行用的是4个空格缩进:- Eclipse如果配置Tab渲染宽度为4,会和4个空格显示完全一致
- GitHub代码页如果个人设置里Tab宽度为8,这行的Tab就会被渲染成8个空格,看起来比其他行多出一截
验证方式:
- 在Eclipse里打开「显示空白符」开关,查看
message行的缩进是空格还是Tab - 直接在GitHub代码页点右上角的「Raw」按钮查看原始文件的缩进,或在本地执行
git show origin/develop:你的文件路径输出远程分支的实际内容,和预期缩进对比。
- 提交时的自动格式化配置篡改了缩进
包括Eclipse在内的很多IDE、Git插件会配置「提交前自动格式化代码」:如果提交时触发了这个配置,插件会自动调整行内空白符,但你本地工作区显示的是格式化之后的版本,没注意到缩进变化就推送的话,就会出现和预期缩进不符的情况。
验证方式:
检查Eclipse的「项目 > 属性 > Java代码样式 > 格式化」里有没有开启提交前自动清理/格式化的规则,对比提交前后的文件diff。 - 其他低概率问题
- 确认本地
develop分支的远程跟踪配置是否正确:执行git branch -vv,看develop分支后面的跟踪远程是不是origin/develop,如果不是,说明本地分支跟踪错了远程仓库地址,推送时推到了其他位置 - 确认GitHub页面无缓存:刚推送完立刻打开GitHub页面可能命中缓存,强制刷新页面或重新进入分支页面再查看。
- 确认本地
内容的提问来源于stack exchange,提问作者bluethundr
相关产品推荐
相关产品推荐

