解決策
方法 1:git restart --マージ前に送信されたハッシュ文字列をマージします
注 1:
注 2: MERGE_HEAD が現在のコミットにある場合 (つまり、ブランチのマージ時にエラーまたは競合が発生した場合、次に追加の "|MERGING" が発生します) )git merge --abort
このメソッドと同じ
メソッド 2:
git reset merge前的任何一次提交的hash串 git clean -n #预删除 #将预删除不想删除的文件加入.gitignore git add .gitignore git clean -f
規約: リモート ウェアハウス URL 1 の代わりに
リモート url を使用します。シミュレーション開発者番号 1
mkdir gitTest #新增文件夹gitTest cd gitTest git init git remote add origin "remote url" echo "长太息以掩涕兮, 哀民生之多艰。" > lyrics.txt #新建 lyrics.txt 并在里面写入文字 git add lyrics.txt #将 lyrics.txt加入暂存区 git commit -m "lyrics.txt from user 1" git push origin master git checkout -b dev git push origin dev:dev
2. シミュレーション開発者番号 2
mkdir gitTest2 cd gitTest2 git clone "remote url" cd gitTest echo "Don't make me suffer" > Suffer.txt git add Suffer.txt git commit -m "Suffer.txt from user2" git push origin dev
3. 開発者 No.1 をシミュレート
git checkout master git merge origin/dev #合并远程dev分支 echo "余虽好修姱以鞿羁兮, 謇朝谇而夕替。" >> lyrics.txt #修改文件 lyrics.txt echo "余虽好修姱以鞿羁兮, 謇朝谇而夕替。" > test.txt #新建test并写入内容 git add test.txt #将 test.txt 加入暂存区
開発者 No.1 が直面した状況: ローカル マスター マージ リモート dev のコンテンツが削除され、Suffer.txt ファイルがローカルに追加されます。しかし、間違ったブランチがマージされていることが判明し、直前のマージ操作をキャンセルする必要がありました。ただし、ローカル ファイルには変更があります。
ls
<img src="https://img.php.cn/upload/image/270/754/732/1607592020999359.png" title="1607592020999359.png" alt="Git はマージの取り消しを実装し、マージされたローカル ファイルをクリアします">
#コミット履歴の表示
HEAD^ を実行します^この場合は 7f811bf です。上記のコミット履歴は次のとおりです。 7f811bf がマージ前に送信されたハッシュ文字列であることを確認してください。ローカル ファイルを表示します
ls
コミット レコードをもう一度表示する
git log --oneline --graph
View
検証方法 2
マージを元に戻す現在のローカル ファイルを再度表示するls
git log --oneline --graph
マージがロールバックされたことは明らかですが、ローカルでマージされたファイルはまだ存在しています。冗長な結合ファイル (Suffer.txt) も削除します。
git clean -n
注意:这里看到本地原来的文件 test.txt 也将被删除,这不是我所期望的。我只希望可以删除 meger 的文件。
将 test.txt 文件加入 .gitignore 再执行预删除
echo test.txt > .gitignore git add .gitignore git clean -n
阶段结果:可以看到将会被删除的文件只剩下 merge 的多余文件了。
git clean -f
以上がGit はマージの取り消しを実装し、マージされたローカル ファイルをクリアしますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。