git diff commit_A commit_B向我展示了A和之间的所有差异B
在提交范围内A..B有提交--author=me和--author=someone else
有没有办法让git diff对我之间变动累计A和B,不包括其他的变化?
我想一个潜在的解决方案是解析git log --author=me和“求和”每次提交的差异。另一个潜在的想法可能是采用git blameat 点B并按在A和之间更改的行进行过滤B。
语境:
假设我在很长一段时间内正在处理一个大型功能。在这项工作中,我提交了许多子功能。为了跟上最新的代码库,git pull创建与其他贡献者的贡献的合并提交。我希望能够看到我迄今为止所做的累积更改,而不会看到其他人的更改。假设没有合并冲突(我们接触不同的代码区域,但可能在同一个文件中。
有没有办法获取 A 和 B 之间累积更改的 git diff,排除其他人的更改?
不直接,不。
我想一个潜在的解决方案是解析 git log --author=me 并将每次提交的差异“求和”在一起。
同样的想法,但我认为更容易实现(尽管我预计补丁应用不正确会经常出现问题):从 commit 开始创建一个临时分支A,挑选您想要保留的每个提交(您的或他们的),同时忽略您想跳过的内容,然后将最终结果与原始结果进行比较。一旦对差异感到满意,就丢弃临时分支。因此:
git checkout -b temp A
for commit in $(git rev-list A..B); do
if want_commit $commit; then git cherry-pick $commit; fi
done
git diff A
git checkout realbranch; git branch -D temp
Run Code Online (Sandbox Code Playgroud)
(不需要命名临时分支:分离的 HEAD 将作为临时分支。以上主要用于说明。)
| 归档时间: |
|
| 查看次数: |
2775 次 |
| 最近记录: |