首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在git中,我只能看到2提交之间常见的代码吗?

在git中,我只能看到2提交之间常见的代码吗?
EN

Stack Overflow用户
提问于 2018-03-27 00:51:37
回答 1查看 30关注 0票数 1

假设我有一个有着悠久历史的项目:

代码语言:javascript
复制
0c13c1c - (HEAD) Change 4
fd2ea81 - Change 3
1b82694 - Change 2
5d7f469 - Change 1
b68482e - Initial commit

我知道大多数代码在5d7f469和0c13c1c之间发生了变化,但是仍然有一些代码没有改变。

我可以做这样的事:

代码语言:javascript
复制
git common-code 5d7f469 0c13c1c > common-code-only.tar.gz

我希望公共代码-只包含.tar.gz包含一个完整的项目,其中只有5d7f469中存在、0c13c1c中仍然存在的代码行。

EN

回答 1

Stack Overflow用户

发布于 2018-04-01 20:09:45

好的,基于评论

据我所知,你需要自己写工具。您可以编写自己的"antidiff",由一个公共子序列查找器和打印公共子序列的代码组成。现有的diff工具运行相同的查找器,然后打印不同的部分。或者,您可以运行git diff (或任何其他的diff工具),这将告诉您哪些部分是不同的。排除后,所述文件的其余部分必须相同。这就是我在我自己的评论中所说的“把补丁翻出来”的意思:把不同的东西翻过来,“内翻”

请注意,Python有一个库difflib,用于查找公共子序列。如果您更喜欢编写自己的代码,而不是使用不同的输出,那么difflib代码将使这更容易。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49502804

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档