我如何看待分支branch_1和branch_2之间的差异?
当前回答
在功能分支上时,合并目标分支,然后对其运行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
其他回答
使用gitdiff。
git diff [<options>] <commit>..<commit> [--] [<path>…]
<commit>是一个分支名称、一个提交散列或一个简写符号引用。
示例:gitdiff abc123..def567,gitdiff HEAD。。原始/主。
这将在两个分支的尖端之间产生差异。如果你想找到他们共同祖先的差异来测试,你可以使用三个点而不是两个:
git diff <commit>...<commit>
要检查哪些文件不同,而不是内容如何不同,请仅使用--name:
git diff --name-only <commit>..<commit>
请注意,在<commit>中<commit>(双点)语法,点是可选的;以下是同义词:
git diff commit1 commit2
有许多不同的方法来比较分支,这取决于您需要的特定用例。
很多时候,你想进行比较,因为有些东西坏了,你想看看发生了什么变化,然后修复它,在提交之前再看看发生了哪些变化。
就我个人而言,当我想看到差异时,我喜欢做什么:
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的差异。
在功能分支上时,合并目标分支,然后对其运行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
git diff master..develop
选项:
添加--name仅用于查看文件的名称。在末尾添加--folderOrFileName以查看特定文件或文件夹的更改。要将本地分支与远程分支进行比较,请运行gitfetch--all以获取所有远程分支,然后运行:git diff--仅名称[branchName]。。origin/[分支名称]示例:gitdiff--name only develop。。起源/发展。
转到一个分支(例如main),然后对另一个分支运行diff(例如branch2):
git checkout main
git diff branch2
推荐文章
- 如何获得Git存储库中的Git存储库名称?
- 当git说它正在“解析delta”时,它实际上在做什么?
- Git命令将一个文件夹移动到另一个文件夹
- 在单个文件中重新启动/撤消冲突解决方案
- Visual Studio代码如何解决合并冲突与git?
- 无法推送到远程分支,无法解析到分支
- Git:如何将数据库重置为特定的提交?
- 如何在合并期间使用Git和命令行保存本地文件或远程文件?
- 能够用一个命令推到所有git遥控器?
- 重新基于Git合并提交
- 忽略已经签入目录的内容?
- 如何从windows cmd保存git提交消息?
- (Mac) -bash: __git_ps1:命令未找到
- 如何删除多个已删除的文件在Git仓库
- 使用vimdiff查看所有' git diff '