Git diff locally compares the “content” vs Git diff on github (eg – creating a PR against another branch) compares commits? [duplicate]

For eg – Lets say you have Branch A and Branch B that have the same content since Branch B was branched off from Branch A.

Now, lets say we rebase master into Branch B – git rebase master

If I do a git diff locally now: git diff branchA..branchB

The result: No changes detected

However, If I open a pull request on github with source as BranchB and target as BranchA.

The same content that’s same between the two branches will be shown in the diff since the commit hashes are different because rebasing re-writes the commit.

So just to confirm what I am seeing, github’s diffing is different from git’s diffing?

1

Why GitHub’s Diffing is Different from Git’s Diffing

Yes, GitHub’s diffing behaves differently from git diff because GitHub takes into account the entire commit history of the branches, in addition to their content. Here’s an explanation:


1. git diff Locally

When you run git diff branchA..branchB, Git compares the content of the files in the tip (latest commit) of branchA and branchB.

  • If the content of the files is identical (which is true in your case), it will report no differences, even if the commit histories of the branches are different.
  • Git’s diff focuses solely on the current state of the files and ignores commit history.

2. GitHub’s Diff in Pull Requests

GitHub generates a diff for a pull request by comparing the commit histories of the source (branchB) and target (branchA).

  • It calculates the changes introduced by the commits in branchB that are not in branchA.
  • Since rebasing rewrites commit history (creating new commit hashes), GitHub sees these as new commits, even if their content is identical.

Why GitHub Shows Differences

When you rebase branchB onto master, it rewrites branchB‘s history.

  • Even though the file content in branchB and branchA is identical, GitHub sees the rewritten commits in branchB as “new” relative to branchA.
  • As a result, the pull request shows a diff because the commits in branchB are not part of branchA‘s history anymore.

Key Takeaways

  1. Git’s diff compares file content between commits and ignores history.
  2. GitHub’s pull request diff considers the commit history and treats rewritten commits as new, even if their content matches.

How to Avoid Confusion

  • Use merge-based workflows instead of rebases to preserve the commit history.
  • Use GitHub’s --squash merge option to collapse the rewritten history into a single commit, minimizing discrepancies in commit histories.

Trang chủ Giới thiệu Sinh nhật bé trai Sinh nhật bé gái Tổ chức sự kiện Biểu diễn giải trí Dịch vụ khác Trang trí tiệc cưới Tổ chức khai trương Tư vấn dịch vụ Thư viện ảnh Tin tức - sự kiện Liên hệ Chú hề sinh nhật Trang trí YEAR END PARTY công ty Trang trí tất niên cuối năm Trang trí tất niên xu hướng mới nhất Trang trí sinh nhật bé trai Hải Đăng Trang trí sinh nhật bé Khánh Vân Trang trí sinh nhật Bích Ngân Trang trí sinh nhật bé Thanh Trang Thuê ông già Noel phát quà Biểu diễn xiếc khỉ Xiếc quay đĩa Dịch vụ tổ chức sự kiện 5 sao Thông tin về chúng tôi Dịch vụ sinh nhật bé trai Dịch vụ sinh nhật bé gái Sự kiện trọn gói Các tiết mục giải trí Dịch vụ bổ trợ Tiệc cưới sang trọng Dịch vụ khai trương Tư vấn tổ chức sự kiện Hình ảnh sự kiện Cập nhật tin tức Liên hệ ngay Thuê chú hề chuyên nghiệp Tiệc tất niên cho công ty Trang trí tiệc cuối năm Tiệc tất niên độc đáo Sinh nhật bé Hải Đăng Sinh nhật đáng yêu bé Khánh Vân Sinh nhật sang trọng Bích Ngân Tiệc sinh nhật bé Thanh Trang Dịch vụ ông già Noel Xiếc thú vui nhộn Biểu diễn xiếc quay đĩa Dịch vụ tổ chức tiệc uy tín Khám phá dịch vụ của chúng tôi Tiệc sinh nhật cho bé trai Trang trí tiệc cho bé gái Gói sự kiện chuyên nghiệp Chương trình giải trí hấp dẫn Dịch vụ hỗ trợ sự kiện Trang trí tiệc cưới đẹp Khởi đầu thành công với khai trương Chuyên gia tư vấn sự kiện Xem ảnh các sự kiện đẹp Tin mới về sự kiện Kết nối với đội ngũ chuyên gia Chú hề vui nhộn cho tiệc sinh nhật Ý tưởng tiệc cuối năm Tất niên độc đáo Trang trí tiệc hiện đại Tổ chức sinh nhật cho Hải Đăng Sinh nhật độc quyền Khánh Vân Phong cách tiệc Bích Ngân Trang trí tiệc bé Thanh Trang Thuê dịch vụ ông già Noel chuyên nghiệp Xem xiếc khỉ đặc sắc Xiếc quay đĩa thú vị
Trang chủ Giới thiệu Sinh nhật bé trai Sinh nhật bé gái Tổ chức sự kiện Biểu diễn giải trí Dịch vụ khác Trang trí tiệc cưới Tổ chức khai trương Tư vấn dịch vụ Thư viện ảnh Tin tức - sự kiện Liên hệ Chú hề sinh nhật Trang trí YEAR END PARTY công ty Trang trí tất niên cuối năm Trang trí tất niên xu hướng mới nhất Trang trí sinh nhật bé trai Hải Đăng Trang trí sinh nhật bé Khánh Vân Trang trí sinh nhật Bích Ngân Trang trí sinh nhật bé Thanh Trang Thuê ông già Noel phát quà Biểu diễn xiếc khỉ Xiếc quay đĩa
Thiết kế website Thiết kế website Thiết kế website Cách kháng tài khoản quảng cáo Mua bán Fanpage Facebook Dịch vụ SEO Tổ chức sinh nhật