我的10人左右的团队正在使用GitHub进行开发项目.我们有一个主develop
分支,我们从中创建功能分支来完成我们的开发任务,然后我们将功能分支合并回来develop
.我们使用Pull Requests进行代码审查.所有标准的东西.
然而,有一件事困扰着我.
假设开发人员A创建名为的功能分支myFeature
.比如说,在这个分支中,他对单个文件进行了一行更改Loop.java
.
与此同时,develop
其他开发人员将100个不相关的提交合并到其他分支.
现在,在开发人员A推动他的更改并发出拉取请求之前,他希望确保他的更改与最新的develop
分支一起工作.因此,他将HEAD合并develop
到他的分支中:
git checkout develop
git pull
git checkout myFeature
git merge develop
# testing and stuff
git push origin myFeature
Run Code Online (Sandbox Code Playgroud)
最后一个命令(git merge develop
)总是会导致新的提交.因此,当开发人员A推送他的更改并发出Pull Request for时myFeature
,Pull Request 的审阅者将看到101个提交添加到分支myFeature
:一个更改为Loop.java
,另一个100不相关,并且实际上已经合并develop
.在这里,它们只是作为噪声来掩盖开发者在这个分支中真正改变的东西.
有没有一种简单的方法让审阅者能够通过开发人员的A更改来判断改变了什么,并以某种方式"隐藏"来自合并的提交develop
?我特别考虑了Pull Request视图中的"Files Changed"选项卡.(我意识到我可以使用"提交"选项卡,逐个执行所有提交以查看更改内容,但如果有很多提交,这可能会很烦人.我喜欢单数,最后的"文件已更改"标签.)
编辑:git rebase develop
已被提议作为一种选择,但我不认为它适合我们的目的.通常情况下,多个开发人员都会继续努力myFeature
,因此自从重写历史记录以来,rebase可能会让所有人陷入困境.
编辑2:正如@kan在下面指出的那样,GitHub实际上表现得很好:是的,它会在Pull Request的"Commits"选项卡中显示合并提交(这很好),但是在"Files Changed"选项卡下,仅列出此功能分支上更改的文件(而不是合并中的文件).这正是我正在寻找的.
一种方法是,而不是做git merge
对git rebase develop
.这不会导致合并提交发生,并将新提交放在develop中新提交的末尾.
然后,历史记录应仅显示在pull请求中更改的一个新提交.IMO这也使历史保持线性,更容易遵循.
归档时间: |
|
查看次数: |
6989 次 |
最近记录: |