Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 吉特K&;R格式删除_Git_Github_Merge - Fatal编程技术网

Git 吉特K&;R格式删除

Git 吉特K&;R格式删除,git,github,merge,Git,Github,Merge,我参与了一个名为Secret M.Chronicles(SMC)的开源项目 我们似乎在git合并中遇到了一些问题: git中有两个主要分支:release-2.0(用于即将发布的版本)和devel(用于开发) 决定将所有源代码切换到K&R格式标准 格式已应用于devel,但未应用于release-2.0。一名团队成员表示,格式化工具可以更改逻辑,即使它不应该更改逻辑,这对于release-2.0分支来说是不可接受的 格式更改后,已将合理数量的更改推送到devel分支 每次我们将release-

我参与了一个名为Secret M.Chronicles(SMC)的开源项目

我们似乎在git合并中遇到了一些问题:

  • git中有两个主要分支:release-2.0(用于即将发布的版本)和devel(用于开发)
  • 决定将所有源代码切换到K&R格式标准
  • 格式已应用于devel,但未应用于release-2.0。一名团队成员表示,格式化工具可以更改逻辑,即使它不应该更改逻辑,这对于release-2.0分支来说是不可接受的
  • 格式更改后,已将合理数量的更改推送到devel分支
  • 每次我们将release-2.0合并到devel中时,格式更改都会导致每一行显示为冲突,在合并过程中需要仔细检查。这增加了出错的机会,更不用说单调乏味了
  • 我们已经讨论过从devel中删除格式,以便在发布之前消除这些冲突,但这并不简单:
    • 团队成员暗示恢复可能不足以防止合并冲突(如果我理解正确,则基于git的工作方式),需要从历史记录中完全删除
    • 一位团队成员还表示,将K&R添加到2.0版不会减少合并冲突,因为这将被视为历史上的一个不同变化
    • 我们还有更多的分支正在试用这些功能。来自devel的更改已合并到这些分支中。有些人也可能有来自github的叉子。有人担心历史记录编辑可能会导致其他分支机构/分支机构出现问题
我真的不希望为了在保留格式的同时减少合并冲突而匆忙完成发布,但我不希望我们在git中使用糟糕的历史编辑策略造成更严重的问题。 我们如何解决这个问题

代码库可在以下位置公开查看:

我们在github中对此的讨论位于

您可以尝试:

git merge -Xignore-all-space
另见:


就我个人而言,我会在2.0版上修改格式。在发布之前修复一次,然后在接下来的一个月或几年中使用两种不同的源代码格式,要容易得多。如果您担心格式化工具会破坏内容,只需在重新格式化之前和之后编译,并检查二进制文件是否相同。

感谢您再次帮助我们,格鲁贝尔。昆图斯能够利用这一点来解决我们一直面临的问题。