在git中插入第三方更改

时间:2013-12-11 08:43:18

标签: git atlassian-sourcetree

我被朋友交给了一个项目。没有使用版本控制。我需要进行更改,所以我使用Sourcetree从这个项目目录创建了一个git存储库。我使用此版本仅供本地使用。没有遥控器。我只是喜欢这样的想法,即我所做的每一项改变都能很好地观察,并且可以随时恢复。我做了很多改变。

现在我的朋友想出了一个项目的新副本。他也做了很多改变。

合并这些更改的最佳方法是什么?

  • 我是否在一个单独的目录中克隆我的存储库,覆盖项目文件并将它们推送到我原来的文件?
  • 我是否只是覆盖了我的工作副本?
  • 我是否创建并签出分支并覆盖这些文件?

(我知道我总是需要手动检查每一个'变化'并决定是否包括这个。)

2 个答案:

答案 0 :(得分:1)

修改

如果您的朋友没有使用git并向您提供她/他的整个项目目录,一个好方法是使用文件夹差异to create a patch and apply that patch into your git repository


之前的回答

假设您的朋友在本地提供他的git存储库,您可以使用git remote将他的git存储库添加为本地存储库的远程存储库。然后,您可以将其存储库中的更改/审核/合并到您的存储库中。你的朋友可以在他的机器上做同样的事情。这样,您就可以直接同步更改,而不需要任何服务器。缺点是,当执行git pushgit pull命令时,两台计算机必须在线。

Git是分散的VCS,因此它会直接将所有存储库提交下载到您的计算机上。

话虽如此,为了方便起见,团队使用git存储库托管非常常见。托管的git存储库充当准集中存储库。您可以随时推送和删除更改,而无需等待您的朋友上线。随着您的团队变得越来越大,10个开发人员可以更方便地拥有一个中央远程存储库,而不是为每个其他开发人员提供9个单独的远程存储库。

将新的远程分支添加到git存储库后,可以使用git branch命令切换分支。

How to add remote in Sourcetree

git-remote man

git-branch man

git book

答案 1 :(得分:0)

有点过期,但可能对后代有所帮助......

更清洁的方法是结账分行的朋友'在应该包含其原始的提交(可能是代表中的第一个提交),未修改的贡献。

在该分支中,存储他的贡献,提交,然后将该分支合并到您的' master'。

了解此机制后,请查看subtree merge mechanism