将修改后的文件导入git存储库的最简单方法

时间:2014-06-19 08:03:01

标签: git

我正在使用git repo合作(乳胶)文档,但我们的合作者之一不喜欢使用git。最简单的解决方案似乎是在他想要编辑时向他发送最新版本,然后让其中一个git用户将这些更改添加回repo(使用' diff'来补丁更改为例)。我的问题是如何只使用git命令最容易做到这一点,即是否可以用他的版本覆盖repo中的当前文件,然后运行git命令将这些更改与最新提交合并?或者首先要创建一个单独的分支?

1 个答案:

答案 0 :(得分:0)

由于您将处理未使用git记录的文件更改,因此使用分支将更容易跟踪更改。否则,由于其他人引入的更改,您当前的状态可能会变得混乱

让我们说您正在处理的文件是hello.tex

创建一个分支,例如no-git-person,它将是您与该人共享文件的分支。

git checkout -b no-git-person

在此阶段,该文件与您的主文件同步。

来自此分支的邮件/共享文件,一旦他进行编辑并使用person发送给git之一,结帐到 no-git-person分支并进行提交,也许签署提交您的名字,以便其他git用户可以知道

git commit -m "[signed by] some meta information here"

将主人合并到此分支

git merge master

成功合并:如果合并成功,请将文件合并回主文件

git checkout master
git merge no-git-person

合并冲突:如果发生合并冲突,请中止合并

git merge --abort

坐在一起解决这些变化。再次提交并与master合并。

git commit -m "[signature info] resolved conflict"
git checkout master
git merge no-git-person

如果您想再次分享,请执行

git checkout no-git-person
git merge master // now synced with your latest work; you can share the file from this branch

这个想法是保持不使用git的人的更改而不污染git用户正在工作的分支。只有在您确定没有冲突时才将更改合并到您的工作中。

问题是不使用git的人必须等待git用户提供更新的文件才能进行更改。它违背了合作的目的。

如果可以,请说服该人使用git这将使您免于未来的协作难题。