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