【发布时间】:2013-12-07 16:41:48
【问题描述】:
我试图弄清楚我们是否可以设置 git 将任何已被两个或多个开发人员更改的文件标记为冲突 - 无论该文件中的相同行是否被修改。这是一个例子:
两个开发人员首先在他们的本地机器上克隆一个远程仓库。开发人员 1 对文件 A 进行了更改。由于他是第一个更改文件的开发人员,因此没有冲突,然后他将更改提交到本地存储库,然后将更改推送到远程存储库。在开发人员 1 工作时,开发人员 2 也在处理同一个文件,但在完全不同的区域中,因此没有重叠的代码行。开发人员 2 然后将他的更改提交到他的本地存储库,然后进行拉取。此时,git似乎会自动合并行。
有时这没关系。但是,在其他时候,这绝对是不正确的,并且该文件需要在被推送到远程仓库之前进行审查和更新。这非常重要并且经常发生,以至于我们真的想在将它们推送到存储库之前将其应用于所有文件。所以,问题是 - git merge 是否可以配置为在上次拉取后被另一个开发人员更改时将文件识别为冲突?我看过 git merge 命令here。尽管它提供了合并策略,但我没有看到任何可以提供这种功能的东西。实现此功能也不难。需要做的就是确定文件 A 的开发人员本地 repo 版本(来自上次拉取)是否与远程 repo 中文件 A 的当前版本匹配。如果不是,则将其标记为冲突。有什么方法可以做到这一点,或者我们可以使用任何其他想法来识别已更改并需要在推送到存储库之前进行审查的文件?
【问题讨论】:
-
到目前为止,我只看了标题,但听起来很糟糕……冲突的概念在 Git 中得到了很好的定义。您是否试图让 Git 识别不存在的冲突?
-
@MarcellFülöp 我希望能够检测到另一个开发人员何时更新了远程仓库,因为它被另一个开发人员拉下,以便开发人员可以在签入之前决定是否需要更新他的更改。如果 git 做不到,那么也许有一个 gui 工具可以做到?
标签: git version-control repository git-merge git-rebase