在git中插入第三方更改

在git中插入第三方更改,git,atlassian-sourcetree,Git,Atlassian Sourcetree,我的一个朋友交给我一个项目。没有使用版本控制。我需要进行更改,所以我使用Sourcetree从这个项目目录创建了一个git存储库。我仅将此版本控制用于本地使用。没有遥控器。我只是喜欢这样的想法,我所做的每一个改变都会被很好地关注,并且可以随时恢复。我做了很多改变 现在我的朋友拿出了一份新的项目副本。他也做了很多改变 合并这些更改的最佳方式是什么 我是否将我的存储库克隆到一个单独的目录中,覆盖项目文件并将其推送到我的原始目录中 我只是覆盖我的工作副本吗 我是否创建并签出分支并覆盖这些文件 (我

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

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

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

  • 我是否将我的存储库克隆到一个单独的目录中,覆盖项目文件并将其推送到我的原始目录中
  • 我只是覆盖我的工作副本吗
  • 我是否创建并签出分支并覆盖这些文件
(我意识到我将始终需要手动检查每个“更改”,并决定是否包含此更改。)

EDIT 如果您的朋友不使用git并向您提供她/他的整个项目目录,一个好方法是使用folder diff


先前的答复 假设您的朋友在本地为其git存储库提供服务,您可以使用
git remote
将他的git存储库作为远程存储库添加到您的本地存储库中。然后,您可以将更改从他的存储库拉入/审阅/合并到您的存储库中。你的朋友可以在他的机器上做同样的事情。通过这种方式,您将能够直接同步更改,而不需要任何服务器。缺点是,当执行
git push
git pull
命令时,两台计算机都必须联机

Git是分散的VCS,所以它将所有存储库提交直接下载到您的机器上

话虽如此,团队出于方便的目的使用git存储库托管是非常常见的。托管的git存储库充当准集中式存储库。您可以随时推拉更改,而无需等待您的朋友联机。随着团队的壮大,10个开发人员拥有一个中央远程存储库要方便得多,而不是每个其他开发人员拥有9个单独的远程存储库

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

编辑 如果您的朋友不使用git并向您提供她/他的整个项目目录,一个好方法是使用folder diff


先前的答复 假设您的朋友在本地为其git存储库提供服务,您可以使用
git remote
将他的git存储库作为远程存储库添加到您的本地存储库中。然后,您可以将更改从他的存储库拉入/审阅/合并到您的存储库中。你的朋友可以在他的机器上做同样的事情。通过这种方式,您将能够直接同步更改,而不需要任何服务器。缺点是,当执行
git push
git pull
命令时,两台计算机都必须联机

Git是分散的VCS,所以它将所有存储库提交直接下载到您的机器上

话虽如此,团队出于方便的目的使用git存储库托管是非常常见的。托管的git存储库充当准集中式存储库。您可以随时推拉更改,而无需等待您的朋友联机。随着团队的壮大,10个开发人员拥有一个中央远程存储库要方便得多,而不是每个其他开发人员拥有9个单独的远程存储库

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


有点过时了,但可能对后代有帮助

一种更简洁的方法是在提交时签出分支“friend”,该提交应该包含其原始(这可能是rep中的第一次提交),未修改的贡献

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


一旦你了解了这一机制,看看有点过时了,但可能对后代有帮助

一种更简洁的方法是在提交时签出分支“friend”,该提交应该包含其原始(这可能是rep中的第一次提交),未修改的贡献

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


一旦你理解了这个机制,看看我是否误解了你的问题?你的意思是你的朋友不打算使用git,她/他将更改作为她/他的整个项目目录的快照发送给你?我误解了你的问题吗?你的意思是说你的朋友不打算使用git,她/他将更改作为她/他的整个项目目录的快照发送给你?也许我的问题不完全清楚,但通过说“没有使用版本控制”,我试图说我的朋友没有使用任何版本控制。也许我的问题不完全清楚,但是通过说“没有使用版本控制”,我试图说我的朋友没有使用任何版本控制。