1

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

将未跟踪的目录合并到已跟踪的目录中

但是,那里的答案对我的情况并不是特别有帮助。

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

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

4

2 回答 2

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
于 2012-05-30T14:16:43.433 回答
1

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

是的,它应该是相同的,另外还有一个好处是可以将所有内容保持在同一个引用中。

我将如何找到我在相关目录中所做的第一个提交?

Agit bisect将很有用,以便找到第一个“错误”提交(即您的目录所在的提交)。

于 2012-05-30T14:10:36.847 回答