0

GIT を使用してプロジェクトに取り組んでいる 2 人の開発者がいます。

これで、すべてが問題なく、ユーザー B が変更を加えたユーザー A の 1 つのバージョンができましたが、すべて無視できます。

ただし、ユーザー A とユーザー B は変更をコミットしました...

ユーザーの A バージョンのみを使用し、ユーザー B のすべての変更が無視されるように、状況をリセットするにはどうすればよいでしょうか?

私たちはEclipseを使用してAndroidプロジェクトに取り組んでおり、GITは初めてです...

4

2 に答える 2

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

リモートに複数のブランチがある場合はお知らせください。それらの詳細を更新します。

補足: すべての開発者が同じリモート リポジトリにコミットしている場合は、gitlikeを使用していますsvncommit各開発者は、 、 などを使用できる独自のリモートも持つ必要がありますbranch。次に、変更セットが承認されると、中央リポジトリにマージされます。

于 2013-02-25T17:28:26.667 に答える
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. Whileはすべての変更を--hardクリアし、コミットを巻き戻すだけで、変更を消去しません。--soft--mixed

上記では非 ff が発生するため、パブリック リポジトリにプッシュする場合はgit revert SHAofCommit、そのコミットによって行われたすべての変更を元に戻すコミットを作成するものを検討する必要があります。

于 2013-02-25T17:28:27.737 に答える