2015-12-06 8 views
0

Для моего архива 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 (явно «локальная» проблема), но в случае, если это важно, я чувствовал, что должен сообщить об этом.

+0

Это похоже на [http://stackoverflow.com/questions/15769298/git-blame-correct-author-after-merge], но при запуске 'git blame -no-merges', как рекомендовано, все же меня «обвиняют» в всех изменениях, совершенных в этом патче. –

ответ

1

Использования git rebase -i затем установите оригинал автор фиксации с помощью

git commit --amend --author "Original Author Name <[email protected]>" 

Более подробной информации о том, как изменить автор here. Из памяти есть несколько дополнительных обручей, чтобы перескакивать, чтобы сменить авторство слияния, но это кажется правильным, если вы сделали слияние.