同一 GIT 分支的两次合并之间的区别
Difference between two merges of same GIT branch
假设我有一个远程仓库 XYZ
以及分支 TEST
和 TEST1
。
我将遥控器 XYZ
拉到我的本地 XYZ
存储库并切换到分支 TEST1
。
我做了几次提交并推送到远程。然后我从TEST1
合并到TEST
(合并A).
我对 TEST1
做了更多的提交,并将它们推送到远程。然后我将所有这些提交合并到 TEST
(合并 B)。
问题:
如何在分支 TEST
中找到差异并列出在这两个合并(合并 A 和合并 B)之间更改或添加的所有文件?
git diff --name-only ${MERGE_SHA_A}..${MERGE_SHA_B}
应该显示差异文件,没有 --name-only 如果这是你的意思,你会看到实际的差异
git log
如果需要 ID,应该列出提交
找到第一个合并提交和第二个合并提交之前的提交,并将它们与 git diff <id1> <id2>
进行比较
根据您的解释,您的提交图在 GUI 中大致如下所示:
x1 ------ A ------- B <-- TEST
\ / /
y1 - y2 - y3 - y4 <-- TEST1
我的首选答案是使用 GUI select 提交并将它们发送到可视化差异工具,而不是使用命令行。
以Git Extensions为例,
- 通过右键单击顶行的 B 提交来签出
TEST
,然后 selecting [Checkout Branch > TEST]
- 然后右击A提交,select[比较>与当前分支比较]
- 这将在您设置的任何差异工具中提取差异(例如 KDiff3,目前安装包附带)。无需复制或粘贴任何哈希等(尽管通过单击任何提交并查看屏幕下半部分的 "Commit" 选项卡,它们很容易获得)。
KDiff3 在左侧直观地向您显示每个修改、添加或删除的文件,您可以单击其中任何一个以在右侧查看确切的更改。
命令行工作正常 - 特别是当您已经知道哈希值时的小更改,或者您的存储库不复杂并且您可以快速找到它们,但我发现,平均而言,运行在后台使用 GUI 并切换到它来完成大多数任务,这对我来说是最好的工作流程。
假设我有一个远程仓库 XYZ
以及分支 TEST
和 TEST1
。
我将遥控器 XYZ
拉到我的本地 XYZ
存储库并切换到分支 TEST1
。
我做了几次提交并推送到远程。然后我从TEST1
合并到TEST
(合并A).
我对 TEST1
做了更多的提交,并将它们推送到远程。然后我将所有这些提交合并到 TEST
(合并 B)。
问题:
如何在分支 TEST
中找到差异并列出在这两个合并(合并 A 和合并 B)之间更改或添加的所有文件?
git diff --name-only ${MERGE_SHA_A}..${MERGE_SHA_B}
应该显示差异文件,没有 --name-only 如果这是你的意思,你会看到实际的差异
git log
如果需要 ID,应该列出提交
找到第一个合并提交和第二个合并提交之前的提交,并将它们与 git diff <id1> <id2>
根据您的解释,您的提交图在 GUI 中大致如下所示:
x1 ------ A ------- B <-- TEST
\ / /
y1 - y2 - y3 - y4 <-- TEST1
我的首选答案是使用 GUI select 提交并将它们发送到可视化差异工具,而不是使用命令行。
以Git Extensions为例,
- 通过右键单击顶行的 B 提交来签出
TEST
,然后 selecting [Checkout Branch > TEST] - 然后右击A提交,select[比较>与当前分支比较]
- 这将在您设置的任何差异工具中提取差异(例如 KDiff3,目前安装包附带)。无需复制或粘贴任何哈希等(尽管通过单击任何提交并查看屏幕下半部分的 "Commit" 选项卡,它们很容易获得)。
KDiff3 在左侧直观地向您显示每个修改、添加或删除的文件,您可以单击其中任何一个以在右侧查看确切的更改。
命令行工作正常 - 特别是当您已经知道哈希值时的小更改,或者您的存储库不复杂并且您可以快速找到它们,但我发现,平均而言,运行在后台使用 GUI 并切换到它来完成大多数任务,这对我来说是最好的工作流程。