特定のコミットに対して「担保」コミット(同じ行を編集しているため、競合が発生するコミット)を特定する方法はありますか?git revert:実際に元に戻す前に、競合する可能性のあるコミットを特定することは可能ですか?
非常に単純化した例
$ git init
$ echo test > test
$ git add test
$ git commit -m "First commit"
$ echo test1 > test
$ git commit -am "Second commit"
$ git l
* 95a29dd Second commit
* 30a68e6 First commit
$ type test
test1
この時点で、何らかの理由で、私は30a68e6
を戻したいと仮定。
$ git revert 30a68e6
error: could not revert 30a68e6... First commit
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'
当然、これは95a29dd
ので、同じ行を編集し、衝突をもたらすであろう。
30a68e6
を復元すると競合が発生する可能性がありますか?そうであれば、コミットする(つまり95a29dd
)?
コンテキストを少し分けるには、私は自動的に復帰するためにコミットが必要なので、これが必要です。この場合、30a68e6
を元に戻す必要があることが分かっている場合は、「担保」コミットを特定できるようにする必要があります。最初に元に戻す必要があります(30a68e6
など)。 30a68e6..HEAD
のすべてを元に戻すことが分かっていますが、30a68e6
と競合しないコミットを元に戻すことは避けてください。
密接に関連:http://stackoverflow.com/q/29517440/2541573 – Jubobs
多少関連しています:https://github.com/felipec/git-related – max630