我被朋友交给了一个项目。没有使用版本控制。我需要进行更改,所以我使用Sourcetree从这个项目目录创建了一个git存储库。我使用此版本仅供本地使用。没有遥控器。我只是喜欢这样的想法,即我所做的每一项改变都能很好地观察,并且可以随时恢复。我做了很多改变。
现在我的朋友想出了一个项目的新副本。他也做了很多改变。
合并这些更改的最佳方法是什么?
(我知道我总是需要手动检查每一个'变化'并决定是否包括这个。)
答案 0 :(得分:1)
如果您的朋友没有使用git并向您提供她/他的整个项目目录,一个好方法是使用文件夹差异to create a patch and apply that patch into your git repository
假设您的朋友在本地提供他的git存储库,您可以使用git remote
将他的git存储库添加为本地存储库的远程存储库。然后,您可以将其存储库中的更改/审核/合并到您的存储库中。你的朋友可以在他的机器上做同样的事情。这样,您就可以直接同步更改,而不需要任何服务器。缺点是,当执行git push
和git pull
命令时,两台计算机必须在线。
Git是分散的VCS,因此它会直接将所有存储库提交下载到您的计算机上。
话虽如此,为了方便起见,团队使用git存储库托管非常常见。托管的git存储库充当准集中存储库。您可以随时推送和删除更改,而无需等待您的朋友上线。随着您的团队变得越来越大,10个开发人员可以更方便地拥有一个中央远程存储库,而不是为每个其他开发人员提供9个单独的远程存储库。
将新的远程分支添加到git存储库后,可以使用git branch
命令切换分支。
答案 1 :(得分:0)
有点过期,但可能对后代有所帮助......
更清洁的方法是结账分行的朋友'在应该包含其原始的提交(可能是代表中的第一个提交),未修改的贡献。
在该分支中,存储他的贡献,提交,然后将该分支合并到您的' master'。
了解此机制后,请查看subtree merge mechanism