這是有問題的差異。這是拉取請求的 2/3 提交的視圖:

但是,如果我在命令列上做一個天真git diff的我會得到別的東西:
git diff 5b7549cd97845c41019478f8f339a90c0256014f..7327dfcfb3a95b31f8bf4845556196abe33fefc8
diff --git a/index.js b/index.js
index 5f87902..1885a31 100644
--- a/index.js
b/index.js
@@ -5,6 5,10 @@ function main(args) {
console.info(args);
}
function qooBoz() {
console.log("qooBoz");
}
function fooBar(x, y) {
const z = x y;
return z;
@@ -16,6 20,7 @@ function barBaz(q, z) {
}
function bizBom(a, b) {
console.log("bizBom");
const c = a b;
return c;
}
不同的是,GitHub 似乎“忽略”了合并提交,只關注 PR 作者所做的更改。在大多數情況下,這是相關的差異以及我希望看到的。
我怎樣才能在命令列獲得相同的差異,只知道兩個提交哈希5b7549cd97845c41019478f8f339a90c0256014f和7327dfcfb3a95b31f8bf4845556196abe33fefc8?
編輯 1
我認為更清晰的問法是:在這兩個鏈接上,在 git 操作方面,GitHub 所做的有什么區別:


uj5u.com熱心網友回復:
當您查看圖表時,這會變得更加清晰:
$ git log --graph --oneline
* 7327dfc (HEAD -> add-biz-bom, origin/add-biz- bom) Add logging
* fab1ea5 Merge branch 'main' into add-biz-bom
|\
| * 0d8e5b1 (origin/main, origin/HEAD, main) Add qooBoz function
* | 5b7549c Add bizBom function
|/
* 2e178d9 Add more to index.js
* a9fdc92 Update index.js
...
GitHub “忽略”合并提交 ( fab1ea5) 的原因是:
- 合并提交本身沒有變化(這是典型的)。
- 合并帶來的提交
0d8e5b1是已經在的main,所以從這個 PR 的角度來看,當 PR 完成時不會添加提交main。
您鏈接到的視圖僅區分2 次提交;一個是沒有更改的合并提交,另一個是提交7327dfcf,它本身只是添加了您在螢屏截圖中看到的一行控制臺日志。如果您想從命令列查看,可以使用:
git diff fab1ea5..7327dfc
或者如果您不“知道”合并提交的提交 ID 是什么,您可以使用:
git diff 7327dfc~1..7327dfc
旁注:如果您有興趣在此 PR 的背景關系中查看所有 3 次提交的差異,以模仿您可以使用的一組更改:
git diff 0d8e5b1...7327dfc
或者更直觀地說:
git diff origin/main...origin/add-biz-bom
請注意,對于上述大多數命令,您可以使用 2 個點 (..) 或 3 個點 (...),在這種情況下您會得到相同的答案。但是對于在 PR 背景關系中使用分支名稱的最后一個,您應該始終使用 3 個點,因為origin/main可能在 PR 的合并基礎之前。有關2 點和 3 點之間差異的快速備忘單,請參閱此答案。
警告:即使是兩個分支的最后一個 diff 命令也過于簡單化了。如果在 PR 的源分支和目標分支中都添加了一些更改(例如,由于不同人的挑剔或重復努力),那么PR 背景關系中的實際差異可能是該 PR 輸出的子集最后一個命令。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/426166.html
上一篇:使用git“重繪”克隆的repo
