Wil*_*hes 6 git merge pull-request
我们正在使用git-flow样式工作流,我们想要找出哪个pull请求包含对给定代码行的更改.
假设我们有以下历史:
c---e---g
/ \
-a---b---d---f---h--- master
Run Code Online (Sandbox Code Playgroud)
我的pull请求h与提交消息"Merge pull request#123"合并.
如果我对拉取请求中添加的代码行做了一个git责备,它会告诉我e,而不是h.
12345678 (Wilfred Hughes 2015-02-02 15:22:40 +0000 402) # Some old code
e (Wilfred Hughes 2015-02-12 15:22:40 +0000 402) # Added in the PR, line 1
e (Wilfred Hughes 2015-02-12 15:22:40 +0000 403) # Added in the PR, line 2
56789012 (Wilfred Hughes 2015-02-26 17:24:18 +0000 404) # More old code
Run Code Online (Sandbox Code Playgroud)
如何在git中找到给定代码行的合并提交?
(注意这与此相关问题不同,因为我从代码行开始,而不是提交).
如果您解决了该提交中的冲突,则合并提交只会出现在 git-blame 中。
对于没有冲突的正常合并,h永远不会出现在 gitblame 中,因为它在任何代码行中都没有改变,只是合并了g和f。
所以你想要的可以分两个阶段实现
首先找到您感兴趣的受哪个提交影响的代码行。这可以通过 gitblame -L 选项(来自 git 1.8.4)来实现。给出 10 行以上的范围,因为确切的行号可能已更改。
$ git Blame -L200,+10 -- 文件名.ext
查找步骤 1 中找到的提交之后的第一个合并提交,因此您必须首先找到哪个提交影响了您感兴趣的代码行。这可以按照查找包含特定提交的合并提交中的回答来实现
| 归档时间: |
|
| 查看次数: |
262 次 |
| 最近记录: |