git只创建我的更改补丁

时间:2012-05-30 12:40:24

标签: git

我想做一些与这个问题基本相似的事情:

Merge an untracked directory into the tracked directory

然而,答案对我的情况并没有特别的帮助。

基本上,一位同事将他的代码版本作为zip文件发送给我。他的版本应该远远超过我的版本,但我不能只使用他的版本,因为我的版本中有一些我不相信的错误修复。我想要做的是创建一个补丁,其中只包含我对代码的贡献,并尝试用我的更改修补他的(未跟踪的)版本。

在我开始处理新分支中的代码,将其文件复制到该repo并将其作为新分支提交,然后将该分支与我的分支合并之前,这与检查修订是否相同?如果是这样,我将如何找到我在相关目录中进行的第一次提交?

2 个答案:

答案 0 :(得分:2)

您可以使用git log来显示影响特定路径的所有提交:

git log -- path/to/interesting/dir

由于您只对自己的提交感兴趣,因此您还需要--author选项:

git log --author=mgilson -- path/to/interesting/dir

目录中的第一个提交是列表中的最后一个提交,您可以使用--oneline选项和tail组合找到它:

git log --author=mgilson --oneline -- path/to/interesting/dir | tail -n1

答案 1 :(得分:1)

  

在我开始处理新分支中的代码,将其文件复制到该分区并将其作为新分支提交,然后将该分支与我的分支合并之前,这与检查修订是否相同?

是的,它应该是相同的,还有额外的好处,以保持所有内容相同的参考。

  

我将如何找到我在相关目录中进行的第一次提交?

git bisect 会有用,以便找到第一个“错误”提交(即您的目录存在的提交)。