96

ベンダー ディレクトリ (#2) を含む作業ディレクトリ (#1) があります。composerなしで手動でプルしたい依存関係が1つあります(npm/gemのphpバージョン)。#2でライブラリを更新したいと決めたとき、私は#1で作業していましたが、変更を保存/コミットしていませんでした。vendor/myname に移動し、git pull リポジトリを実行しました。

残念ながら、ベンダー フォルダーに新しいディレクトリを作成する代わりに、プルして #1 にマージし始めました。

今私が持っています:

  • 変更を含む #1 フォルダー
  • 間違ったリポジトリからの不要なファイルを含む #1 フォルダー
  • #1 composer.json、Readme.md などのマージ競合 (一般的なファイル)

フォルダー #1 に対して行った変更を失うことなく、この最後の git pull を「元に戻す」必要があります。これどうやってするの?

4

3 に答える 3

186

git merge --abortあなたが探しているものかもしれません。

于 2013-09-09T07:06:59.110 に答える
20

最新の Git:

git merge --abort

古い:

git reset --merge

古い学校 (警告: すべてのローカル変更を破棄します):

git reset --hard

しかし実際には、それは存在する与えられたものgit merge --abortと同等であることに注意する価値があります。これは、merge コマンドの git ヘルプで読むことができます。git reset --mergeMERGE_HEAD

git merge --abort is equivalent to git reset --merge when MERGE_HEAD is present.

失敗したマージの後、 がないMERGE_HEAD場合、失敗したマージは で元に戻すことができますがgit reset --merge、必ずしも であるとは限りませんgit merge --abortしたがって、それらは同じものの古い構文と新しい構文であるだけではありません。個人的にはgit reset --merge、日常の仕事ではるかに役立つと思います。

于 2015-02-07T15:06:48.243 に答える
3

git statusGit 2.10 (2016 年第 3 四半期) では、オプションが提案されるため、何をすべきかがわかりgit merge --abortます。

Matthieu Moy ( )によるcommit b0a61ab (2016 年 7 月 21 日)を参照してください。( 2016 年 8 月 3 日コミット 5a2f4d3Junio C Hamanoによってマージされました)moy
gitster

statusgit merge --abort:適切な場合は ' ' を提案します

git rebase --abort競合するリベース中には既に ' ' を提案しています。
同様に、' git merge --abort' の競合解決中に ' 'を提案しgit mergeます。

于 2016-08-04T15:38:58.073 に答える