Для моего архива github я получил запрос на перенос, который я хотел протестировать сначала перед слиянием, и поэтому использовал команды командной строки, рекомендованные github (contrib1 представляет имя пользователя вкладчика, Patch1 имени запроса тянущего и репо имени хранилища)git: как разрешить конфликты слияния без взятия «вины»
git checkout -b contrib1-patch1 master
git pull https://github.com/contrib1/repo.git patch1
Потому что я сделал некоторые изменения заранее (тривиальный) слияние конфликт разрешен, который я решить путем редактирования file1. Патч также включены не конфликтующие изменения в другие файлы file2 ...
Тогда я последовал за предложение GitHub снова:
git add file1
git checkout master
git merge --no-ff contrib1-patch1
git push origin master
слияния команда привела к сообщению «уже уточненный " я тогда понял, что я опущена совершить первый, так повторяется по существу процедуру:
git commit -m "Implements patch1 by contrib1" repo
git checkout master
git merge --no-ff contrib1-patch1
git push origin master
Опять же, git merge --no-ff
приводятся в сообщении„уже уточненный“. Репозиторий теперь корректен, но я виню себя виновником изменений во всех файлах, а не только конфликтующих строк, которые, как мне кажется, плохи с точки зрения присвоения кредита внешнему вкладчику.
Вопрос в том, какую последовательность команд следует использовать в следующий раз, чтобы избежать этого сценария и убедиться, что автор патча показан в вине или виде истории? Обратите внимание, что меня не интересует изменение истории для патча выше, я только хочу сделать это правильно для следующего патча. Скорее всего, такая же проблема возникла бы, если бы я не допустил ошибку, забыв о commit
(явно «локальная» проблема), но в случае, если это важно, я чувствовал, что должен сообщить об этом.
Это похоже на [http://stackoverflow.com/questions/15769298/git-blame-correct-author-after-merge], но при запуске 'git blame -no-merges', как рекомендовано, все же меня «обвиняют» в всех изменениях, совершенных в этом патче. –