如何将外部更改合并到我的Git仓库中最佳方法是什么?

16

我有一个Git的项目,收到了一些在Git之外进行的修改。这些修改是基于我自己正在进行更改的早期版本。最好的方法是如何将这些外部文件与我的文件合并?

非常感谢!


1
这些更改以什么格式发送给您的?是一个diff文件吗? - Chris Eberle
3个回答

12

最好的方法是告诉git这些提交是基于哪个版本的,这样可以让自动合并的机会更大。

  1. git checkout <旧提交的sha1> -b mybranch,回退到旧版本并创建一个新分支。
  2. 如果更改是以差异形式发送的,则使用git-apply将其应用到工作树中,否则只需放置更新后的文件即可。
  3. 添加和提交文件。
  4. git checkout master,然后git merge mybranch

非常感谢,这听起来就是我想要的。干杯! - GitNub

4

您需要像处理这些文件一样操作,所以请基于早期版本的状态提交它们:

  1. 在您认为是修改后文件基础的提交处创建一个分支
  2. 添加修改后的文件
  3. 提交更改
  4. 将该分支与主开发分支合并

我正在做这个,但是Git只会覆盖更改,而不是合并它们,所以我无法处理任何合并冲突。 - Francesco Pettini

0

最好的方法是由提供更改的人提供补丁而不是文件。但如果这不可能,那么其他人不了解版本控制或其他原因,您可以尝试在当前工作的分支中提交所有未完成的更改。最好尽量避免任何未跟踪的文件。然后将这些文件复制到git repo中并运行git status,您将看到与您的repo状态相比有哪些更改,然后您可以决定如何处理它们。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接