我们有两名开发人员使用GIT处理项目。
现在我们有一个版本的用户A,其中一切正常,用户B进行了修改,可以忽略所有内容。
但是,用户A和用户B提交了更改...
我们如何重置sitaution以便我们只使用用户的A版本并忽略所有用户B的更改?
我们正在使用Eclipse开发Android项目,并且是GIT的新手......
答案 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
。每个开发人员也应该拥有自己的遥控器,他们可以commit
,branch
等。然后,当批准变更集时,它会合并到中央仓库。
答案 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
这将创建一个提交,它将恢复该提交所做的所有更改。