2013-02-25 29 views
0

我们有两个开发人员使用GIT处理项目。如何清理GIT冲突到一个用户的版本忽略其余的部分

现在我们有一个用户A的版本,其中一切正常,用户B进行修改,所有可以被忽略。

但是用户A和用户B提交更改...

我们如何可以重置sitaution使我们只要使用用户的版本,然后将所有用户B的变化被忽略?

我们正在使用Eclipse的Android项目,是新的GIT ...

+0

你的问题并不是非常清楚,我尽力了解它。主要缺乏关于如何使用git的信息。 – Learath2 2013-02-25 17:44:35

回答

1
User A-> C1--C3--C4--C5--C6--C7--C2&7 
       \   /
       User B->C1--C2 

从你的问题我得到,你想回到C3?如果是这样,你可以得到C3的SHA,然后做一个git reset SHAofC3

但是无论如何回到一个特定的提交你总是想git reset (--hard|--mixed|--soft) CommitSHA。虽然--hard将清除所有更改--soft--mixed将仅回滚提交,但不会擦除更改。

尽管上述操作会导致非ff,因此如果您推送到公共存储库,您应该考虑git revert SHAofCommit,它会创建一个提交,以恢复由该提交完成的所有更改。

+0

非常感谢。实际上,提交的内容非常复杂,我们需要的仅仅是忽略所有提交的一个用户的完整版本。所以我们最终做的是删除所有用户的B项目和本地存储库,并从用户A重新创建一个新的。但感谢提示! – user387184 2013-02-25 18:55:02

1

从它的声音,你都在犯相同的远程存储库,并可能直接master。所以我会假设你的历史看起来像:

A1 B1 A2 A3 B2 
o-----o-----o-----o-----o 

你必须revert用户B提交更改:

git revert <hash> 

这将增加额外的承诺为每个还原:

A1 B1 A2 A3 B2 B1r B2r 
o-----o-----o-----o-----o-----o-----o 

如果在远程有多个分支,请告诉我,我会更新这些细节。

备注:如果您的所有开发人员都承诺使用相同的远程存储库,则您使用git,如svn。每个开发者也应该有他们自己的远程设备,他们可以将其设置为commit,branch等。然后,当变更集被批准时,它被合并到中央回购站中。

+0

非常感谢 - 但我们只是从用户A的干净版本重新创建完整的本地存储库,以便用户B从那里再次启动 – user387184 2013-02-25 18:56:59