如何清除GIT冲突到一个用户的版本忽略其余的

时间:2013-02-25 17:05:16

标签: eclipse git

我们有两名开发人员使用GIT处理项目。

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

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

我们如何重置sitaution以便我们只使用用户的A版本并忽略所有用户B的更改?

我们正在使用Eclipse开发Android项目,并且是GIT的新手......

2 个答案:

答案 0 :(得分: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。每个开发人员也应该拥有自己的遥控器,他们可以commitbranch等。然后,当批准变更集时,它会合并到中央仓库。

答案 1 :(得分: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这将创建一个提交,它将恢复该提交所做的所有更改。