5

こんばんは!

これは非常に一般的なことであり、インターネット上にはおそらく何千もの回答があることを知っていますが、有益な回答を見つけることができませんでした.

私は2つのローカルブランチを持っています:

  • 主人
  • マーク

Mk に多くの変更を加え、コミットし、MASTER に切り替えてこれら 2 つのブランチをマージしました。しかし、対立がありました。今、私は MASTER ブランチにいます。Mk に切り替えることはできませんが、MASTER を Mk でオーバーライドする必要があります。

それは言い続けている

エラー: 次のファイルへのローカルの変更は、マージによって上書きされます

これを行う方法はありますか?

 git mergetool --tool=meld    #No files need merging
 git merge -s theirs Mk       #Could not find merge strategy 'theirs'.
 git merge -X recursive=theirs Mk   # error: Your local changes to the following files 

マージによって上書きされます

変更をオンライン リポジトリにまだプッシュしていません。

すべての変更を含むコミットを見ることができますが、そのコードにアクセスできません。

少し前に git を使い始めたばかりですが、そのようなトラブルに遭遇したことはありません。私が得ることができる助けを本当に感謝します:s

4

4 に答える 4

8

--theirs戦略がないので(それをシミュレートする方法はありますが)、できませんか?

  • 最初のマスターを mk にマージします。git checkout mk && git merge -s ours master
  • マスターへのマージ mk (早送り):git checkout master && git merge mk

この戦略により、競合が発生した場合にバージョン-s oursを確実に保持できます。mk

于 2013-03-24T17:52:53.377 に答える
5

MASTER のクリーンな作業コピーを使用していることを確認してください。

git merge -s recursive -X theirs Mk
于 2015-01-14T09:17:09.993 に答える
0

エラー: 次のファイルへのローカルの変更は、マージによって上書きされます

これは通常、上書きされるコミットされていない変更があるためです。そのため、最初に (1) コミットまたは (2) スタッシュのいずれかで対処する必要があります。

git add .; git commit -m "committing my workz"
# or
git add.; git stash

マージを試してみましょう。多分あなたは対立を持っています。からのすべての変更をにあるmkものよりも優先する必要がありますmaster。これは、git が時々競合を検出することに少し敏感すぎるため (たとえば、実際の競合がない)、またはコミットしようとしている人がmaster劣等生だったからです。

git checkout master
git merge mk
# oh noes! merge conflicts
# CONFLICT (content): Merge conflict in foo_bar.txt
git checkout mk -- foo_bar.txt
git commit

ブーム!ネジmaster。あなたは私のマスターではありません。

注:git checkout通常HEAD、ブランチ/タグ/SHA/whatever を再ポイントする (および作業ディレクトリを更新する) ために使用されますが、そうするとgit checkout SHA -- file、.渡す SHA のパス コンテンツ。正確なファイルの代わりにパスを渡すことができ、そのパスで異なるすべてのファイルをチェックアウトします。HEAD--

于 2013-08-09T20:50:27.373 に答える
0

方法はわかりませんが、マスター ブランチの一部のファイルのファイル アクセス許可が変更されました。

git差分:

diff --git a/app/Resources/views/base.html.twig b/app/Resources/views/base.html.twig
old mode 100644
new mode 100755

行った変更をコミットしました。

git commit --all -m "changes permissions from 644 to 755"

その後、何も起こらなかったかのようにブランチをマージできました

git merge Mk 

これが最もエレガントなソリューションではないことはわかっていますが..しかし、コードが戻ってきてうれしいです! あとは、このアクセス許可の変更を元に戻す方法を理解するだけです。しかし、多大な助けをありがとう!

于 2013-03-24T20:32:16.243 に答える