Czy istnieje sposób identyfikowania zatwierdzeń "zabezpieczeń" (zatwierdzeń, które edytują te same linie i spowodują konflikt) dla określonego zatwierdzenia?git revert: Czy możliwe jest zidentyfikowanie potencjalnie sprzecznych commitów przed faktycznym powrotem?
bardzo uproszczony przykład
$ 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
Zakładając, że w tym momencie z jakiegokolwiek powodu chcę przywrócić 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'
Oczywiście, będzie to prowadzić do konfliktu, ponieważ 95a29dd
, edycja tej samej linii.
Czy można się wcześniej dowiedzieć, że cofnięcie 30a68e6
spowodowałoby konflikt, a jeśli tak, to z jakim commit (tj. 95a29dd
)?
Aby podać trochę kontekstu, potrzebuję tego, ponieważ potrzebuję pewnych przywilejów, które mają być automatycznie przywrócone. W takim przypadku, jeśli wiem, że należy cofnąć 30a68e6
, chcę móc zidentyfikować zatwierdzenia "zabezpieczenia", które powinny zostać przywrócone jako pierwsze, aby uniknąć konfliktu (np. 30a68e6
). Wiem, że samo przywrócenie wszystkiego, co jest 30a68e6..HEAD
, działałoby, ale chciałbym uniknąć cofnięcia zatwierdzeń, które nie będą w konflikcie z 30a68e6
.
Ściśle związane: http://stackoverflow.com/q/29517440/2541573 – Jubobs
w pewnym sensie: https://github.com/felipec/git-related – max630