这个问题不太可能对任何未来的访客有帮助;它只与一个较小的地理区域、一个特定的时间点或一个非常狭窄的情况相关,通常不适用于全世界的互联网受众。为了帮助使这个问题更广泛地适用,访问帮助中心 /help/reopen-questions 。
我的 10 人左右的团队正在使用 GitHub 进行我们的开发项目。我们有一个主要的develop
我们从中创建功能分支来执行开发任务,然后将功能分支合并回develop
。我们使用 Pull Request 来进行代码审查。所有标准的东西。
然而,有一件事一直困扰着我。
假设开发人员 A 创建了一个名为myFeature
。在这个分支中,他对单个文件进行了一行更改,例如Loop.java
.
同时,100 个不相关的提交被合并到develop
来自其他分支,由其他开发人员。
现在,在开发人员 A 推送他的更改并发出拉取请求之前,他希望确保他的更改适用于最新版本develop
分支。因此,他合并了 HEADdevelop
进入他的分支:
git checkout develop
git pull
git checkout myFeature
git merge develop
# testing and stuff
git push origin myFeature
最后一个命令(git merge develop
) 总是会导致新的提交。因此,当开发人员 A 推送他的更改并发出 Pull 请求时myFeature
,拉取请求的审阅者将看到添加到分支的 101 条提交myFeature
: 已更改为Loop.java
,另外 100 个是无关的,实际上已经合并在develop
。在这里,它们仅充当噪音来掩盖developerA在此分支中真正更改的内容。
有没有一种简单的方法可以让审阅者知道开发人员的 A 更改所更改的内容,并以某种方式“隐藏”来自合并的提交develop
? 我特别考虑了“拉取请求”视图中的“文件已更改”选项卡。
(我意识到我可以使用“提交”选项卡,并逐一查看所有提交以查看更改的内容,但是如果有大量提交,这可能会很烦人。我喜欢“的单一最终视图”文件已更改”选项卡。)
EDIT : git rebase develop
已被提议作为一种选择,但我认为它不适合我们的目的。通常,多个开发人员会同时工作myFeature
,因此 rebase 有可能让每个人都陷入困境,因为它重写了历史。
EDIT 2 :正如 @kan 在下面善意指出的那样,GitHub 实际上表现得很好:是的,它将在 Pull Request 的“Commits”选项卡中显示合并提交(这非常好),但在“Files Changed”选项卡下,仅显示合并提交列出了在此功能分支上更改的文件(而不是合并中的文件)。这正是我正在寻找的。