我如何看待分支branch_1和branch_2之间的差异?


当前回答

有时候把差异看成一棵树很好。。。

gitdifftool—dir diff分支。。其他分支机构

例如,当bitbucket出于性能原因决定时,它只会显示“三向合并”差异,而不是您选择的两个分支之间的实际完全差异。

这将在您选择的工具中以树的形式显示差异。例如熔化。

灵感来自@GregRundlett评论。

其他回答

有许多不同的方法来比较分支,这取决于您需要的特定用例。

很多时候,你想进行比较,因为有些东西坏了,你想看看发生了什么变化,然后修复它,在提交之前再看看发生了哪些变化。

就我个人而言,当我想看到差异时,我喜欢做什么:

git checkout branch_1 # checkout the oldest branch
git checkout -b compare-branch # create a new branch
git merge --no-commit --squash branch_2 # put files from the new branch in the working folder
git status # see file names that changes
git diff # see the content that changed.

使用此解决方案,您将看到diff,您也只能看到使用git状态的文件名,最重要的是,您可以在看到diff时执行branch_2(branch_2位于工作树上)。如果有什么东西坏了,你可以编辑文件并修复它。任何时候,你都可以再次键入gitstatus或gitdiff来查看从新编辑到branch_a的差异。

有时候把差异看成一棵树很好。。。

gitdifftool—dir diff分支。。其他分支机构

例如,当bitbucket出于性能原因决定时,它只会显示“三向合并”差异,而不是您选择的两个分支之间的实际完全差异。

这将在您选择的工具中以树的形式显示差异。例如熔化。

灵感来自@GregRundlett评论。

有两种方法可以查看两个分支之间的差异。这些命令将显示对每个分支中的文件所做的修改。

使用gitdiff命令查看git存储库中两个分支之间的差异。gitdiffbranch1 branch2将显示所有差异。如果要比较两个分支之间的特定文件,可以使用以下命令:git diff branch1 branch2路径/to/filegitlog命令还可以用于查看两个分支之间的差异。使用-left-right参数运行gitlog命令,并将两个分支进行如下比较:git-log—左右分支1…分支2

转到一个分支(例如main),然后对另一个分支运行diff(例如branch2):

git checkout main
git diff branch2

在功能分支上时,合并目标分支,然后对其运行diff。例如,如果您想查看功能分支添加到主分支的更改,请执行以下操作:

// Fetch from all remotes
git fetch

// Check out your feature branch
git checkout feature

// Merge origin/master to your branch
git merge origin/master

// Compare to origin/master
git diff origin/master