gitリポジトリにSourcetree for Windowsを使用していますが、プッシュされていないコミットを元に戻したいと考えています。
それは可能ですか?「コミットを元に戻す」を実行すると、最初のコミットを元に戻す2番目のコミットが作成されますが、最初のコミットをソース管理にまったく表示したくありません。
ローカルリポジトリを削除して、ローカルコミットせずにもう一度プルすることもできますが、別の方法があるのでしょうか。
gitリポジトリにSourcetree for Windowsを使用していますが、プッシュされていないコミットを元に戻したいと考えています。
それは可能ですか?「コミットを元に戻す」を実行すると、最初のコミットを元に戻す2番目のコミットが作成されますが、最初のコミットをソース管理にまったく表示したくありません。
ローカルリポジトリを削除して、ローカルコミットせずにもう一度プルすることもできますが、別の方法があるのでしょうか。
回答:
ソフトリセットは、ローカルの変更を保持します。
出典:https : //answers.atlassian.com/questions/153791/how-should-i-remove-push-commit-from-sourcetree
編集する
About git revert
:このコマンドは、他のコミットを取り消す新しいコミットを作成します。たとえば、新しいファイルを追加するコミットがある場合、新しいファイルgit revert
を削除するコミットを作成するために使用できます。
ソフトリセットの適用について:あなたがコミットをしていたとA
するE
(A---B---C---D---E
)、あなたは(最後のコミットを削除したいですE
)。次に、ソフトリセットを実行してコミットしD
ます。ソフトリセットを使用E
すると、コミットはgitから削除されますが、ローカルの変更は保持されます。git resetのドキュメントには他にも例があります。
元に戻すログエントリを選択した場合は、[このコミットにリセット]をクリックできます。このオプションは、リバースコミットの変更をプッシュしなかった場合にのみ使用してください。変更が失われることが心配な場合は、ソフトモードを使用して、コミットされていない変更(変更したもの)のセットを残すことができます。混合を使用すると、作業コピーがリセットされますが、それらの変更は保持され、ハードは変更を完全に取り除くだけです。ここにいくつかのスクリーンショットがあります:
コミットを削除したい場合は、インタラクティブなリベースの一部として行うことができます。しかし、注意してそれを行うと、レポをめちゃくちゃにしてしまうことはありません。
ソースツリーで:
Sourcetreeでのインタラクティブなリベースの詳細については、このアトラシアンのブログ投稿を確認してください。