2011-08-12 14 views
1

私はgitに非常に新しいです、私は同じような質問のカップルをチェックしましたが、私が見たものは少し異なり、私はそれらについて強く把握しなかったので私自身の質問を投稿しています。git戻るブランチのコミットのカップル

私は自分のプロジェクトで唯一の開発者です。私は自分のコードを頻繁に実験するのが好きなので、バージョンコントロールシステムを使うと助けになると思いました。私はマスターブランチと私が取り組んでいる新しい機能を持つブランチを持っています。ブランチアウトした後、私は知りたいフィーチャーブランチと、捨てたい人のカップルをいくつかコミットしました。その間に、マスターはそれが関係していれば元のままだった。フィーチャーブランチに戻って何回コミットすればいいのかを知る方法を見つけて、そのコミットに行く方法を見つけたいと思います。私はコミットメッセージを見てそれを理解することができますが、私はそれらを見るべきか分からない。

+0

元の機能ブランチをそのまま使用しますか?または不要なコミットを削除することはできますか? – Andy

答えて

1

あなたは一人で作業しているので、最も簡単な方法(ともきれいに、あなたの履歴を保持する)は、次のようになります。

git reset --hard <commit hash of the commit before the commits you want to discard> 

ハッシュ使用git log(またはgit log --pretty=oneline)を取得するには、あなたがしたくない場合HEADから4つのコミットであることがわかっている場合は、HEAD~4

などの表記法を使用するか、削除するコミットを表す行を削除してリベースします。

履歴を保存したい場合(また、他人と仕事をしていて、リモートにプッシュした場合など)git revertはより安全なソリューションです。

+0

ありがとう、これは働いた! – yasar

-1

1 COMITバック= HEAD^

2は^^ = HEADバック

をコミットあなたはオプションのカップルを持っている

1

をmapage "男のgitrevisions" をお読みください。変更を破棄する場合は、git revertをお勧めします。元に戻すことは、仕事を元に戻すようなものです。基本的には、既存のコミットを元に戻すコミットを行います。これについての素敵な部分は、あなたが後であなたの心を変えるならば、あなたは元に戻すことができます!これが最後の第5回を元に戻す最後のコミット3位までをコミットします

git revert branchname~5..branchname~3 

:あなたはあなたがしたいように聞こえるれ、1がコミット以上を元に戻したい場合は

は、構文は次のようになります。 git revertはすぐに復帰をコミットします。コミットする前に変更を確認したい場合は、 --no-commitを指定し、後でgit commitを使用して自分自身でコミットすることができます。

またそうのような個々のコミットを元に戻すことができます:あなたがこれまでに作ったコミットのすべてを見たい場合は、あなたがgit logを使用することができます

git revert branchname~5 

最後にgit logを使用すると、コミットハッシュが表示されます。 git-revertはハッシュを受け入れることができるので、どれくらいの数のリビジョンをカウントする必要はありません。

git revert sha1hashhere 
+0

私はログを読んで、私が "git revert branchname〜12..branchname〜0"を発行すれば、12回後ろに戻る必要があると決めましたか? – yasar

0

あなたは、不要なコミット

  1. は、2つの持っている共通の親を探す削除して[OK]をしている場合。 あなたが遠く離れていることがわかっている場合は、この手順をスキップできます。
    git merge-base featureBranch masterBranch
  2. チェックアウトごfeatureBranch
    git checkout featureBranch

  3. git rebase -i sha_from_step_1。あなたは(あなたのエディタがポップアップ表示時に不要なコミットを含む行を削除したくないコミットを削除し、そのブランチをリベースまたはあなたが使用することができますnはあなたが行きたいどこまで戻ってgit rebase -i [email protected]{n}
  4. マスター
    git merge master
にマージ
関連する問題