我们有两个开发人员正在使用 GIT 开发一个项目。
现在我们有一个版本,用户 A 一切正常,用户 B 进行了所有可以忽略的修改。
但是用户 A 和用户 B 提交了更改...
我们如何重置情况,以便我们只使用用户 A 的版本而忽略所有用户 B 的更改?
我们正在使用 Eclipse 开发 Android 项目,并且是 GIT 的新手......
从它的声音来看,您都在提交到同一个远程存储库,并且可能直接提交到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
like svn
. 每个开发人员也应该有自己的遥控器,他们可以commit
,branch
等等。然后,当变更集被批准时,它会被合并到中央仓库中。
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
. While--hard
将清除所有更改--soft
,并且--mixed
只会回退提交,但不会删除更改。
虽然上述将导致非 ff 因此如果您要推送到公共存储库,您应该考虑git revert SHAofCommit
哪个将创建一个提交,该提交将还原该提交所做的所有更改。