【发布时间】:2018-11-05 04:29:54
【问题描述】:
我想知道如何使用 rebase 从源中提取,如果文件有冲突,我想保留最新修改的文件。
git 有没有办法在提交中获取每个文件的修改日期或只是提交日期?或者有没有办法列出与本地分支和原始分支不同的文件,并告诉哪一侧是最新修改的文件?
示例场景:
origin/mybranch:
- File A (modified today)
- File B (modified yesterday)
local/mybranch:
- File A (modified yesterday)
- File B (modified today)
如果我git pull --rebase 我想保留文件 A 和文件 B 的最新版本。
我正在使用 GitPython 来操作存储库,因此我需要一种使用此标准自动解决任何冲突的方法(保留最新修改文件中的更改)。
【问题讨论】:
-
这与 git 的观点相矛盾。如果昨天有人在 A 中添加了“Hello”,而今天又有人添加了“World”,那么您为什么不希望两者都进行更改呢?诸如保管箱之类的东西更适合于此-始终应用最后一次更改。 GIT 专门用于合并来自不同团队成员的更改——不仅仅是版本控制。
-
我要补充一点,GIT 并不真正关心“时间”,因为它关心树结构。如果您必须这样做,我认为解决方案将是手动的。
-
我正在将 git 添加到 Web 平台以获取对该平台中代码所做更改的历史记录(该平台没有任何历史记录或任何内容,并且是多个用户的一个实例,因此代码将始终反映最新的更改,即使这意味着重写)。我确实需要更改的历史记录,但是当存在合并冲突时,我需要一种自动解决它们的方法,这就是上面描述的标准,因为这将反映 Web 平台中代码的当前状态。所有这些都是使用 Web 扩展和运行 gitpython 的服务器来完成的。
-
如果 git 只在服务器上,所以每个人都在使用同一个 repo,这正是你想要的不是吗?始终考虑两个用户同时编辑,并节省几分钟 - 可能你想停止第二个,让他在覆盖之前看到差异。
-
实际上,由于某些公司凭据问题,服务器现在在每台开发人员机器上运行(类似于 Zotero Web 扩展的工作方式)。如果服务器是集中式的,也许这不会成为问题。
标签: git git-rebase gitpython git-merge-conflict