*これは「これでいいの?」の 1 つです。私が本当に受け入れられる質問にフォーマットすることはできませんが....
私はまだ git、特にリモート ブランチとのマージに 100% 慣れているわけではありません。問題が発生した場合、またはマージの競合をあきらめたい場合は、通常、マージ/コミットをロールバックするのに苦労しています。いわば、うさぎの穴のさらに奥にいることに気づきます。リモートマージを実行するためだけにブランチを作成し、一時ブランチを「実際の」ブランチとローカルにマージする方が簡単でしょうか?このようにして、何か問題が発生した場合にいつでも一時ブランチを核にすることができます.
更新: リモート ブランチがリポジトリに大量のファイルを追加する時期に特に関心があります。例(以下のピーターの例を使用):
私はこれをします:
$ git init
Initialized empty Git repository in /path/to/repo/.git/
$ touch README
$ git add README
$ git commit -m 'Initial commit'
[master (root-commit) da9886d] Initial commit
0 files changed
create mode 100644 README
$ touch A
$ git add A
$ git commit -m 'Add A'
[master 3480a5b] Add A
0 files changed
create mode 100644 A
$ git push // pushed to remote (only a single file, A)
次に、別の開発者がこれを行います。
$ git clone
$ touch B
$ git add B
$ git commit -m 'Add B'
[foo 9912a23] Add B
0 files changed
create mode 100644 B
$ git push // pushed to remote (now has two files A and B)
私がこれを行う場合:
$ git pull
A と B の 2 つのファイルがあります。ここで、「一歩戻って」マージを元に戻したい場合は、次のようにします。
$ git reset --hard master@{...}
ファイル B は追跡されていないファイルとして私のマシンにまだ存在しますよね? git マージを行ったことがないかのように、これらのファイルを削除するにはどうすればよいですか?
これが、別のブランチを作成することを望んでいた理由です。マージを行うために別のブランチを作成する場合:
$ git checkout -b tempBranchForMerge
$ git pull
私はまだファイルAとBになりますが、それらはtempBranchForMergeにしか存在しません。問題が発生した場合、私はこれを行うことができるはずです:
$ git checkout master
$ git branch -d tempBranchForMerge
右?これにより、ファイル B が削除されます。