Взять только часть git commit, нажать на github - PullRequest
3 голосов
/ 09 марта 2011

Я фанат проекта на github ( Slippy ).В другом ответвлении проекта ( от kageroh ) есть коммит, который я хочу отправить в исходный проект, но сопровождающий не хочет всего коммита, только его части.Насколько я понимаю, я мог бы использовать интерактивный перебазирование, чтобы получить только часть коммита, но не должен, потому что это коммит, который уже находится в публичном репозитории.Есть ли способ принять участие в коммите и вернуть его в исходный репозиторий без указания авторства?Или мне просто нужно скопировать изменения, которые я хочу, и поместить их в новый коммит под моим именем?

Ответы [ 2 ]

7 голосов
/ 09 марта 2011

Я думаю, что это нормально - выбрать и уменьшить этот коммит. Чтобы установить автора коммита, просто используйте git commit --author="The Original Author <his@address>".

Например, если f414f3l - это коммит, который вы хотите уменьшить, я, вероятно, сделал бы следующее:

# Make sure you're on the branch you want to create the new commit on:
git checkout master

# Now cherry-pick the commit, but only stage the changes:
git cherry-pick -n f414f3l

# Choose which hunks you want to unstage interactively, using the 's'
# option to split them where necessary.  (Or using the 'e' option for
# complete control over what patch to unstage.)
git reset -p

# When you commit, the commit message should be preserved:
git commit --author="The Original Author <his@address>"
0 голосов
/ 09 марта 2011

Переписать историю публичной ветви - плохая идея, но нет ничего священного в индивидуальном коммите , что означает, что вы не можете скопировать его, изменить его и опубликовать в другой ветке.

Возможно, вы сможете просто создать новую ветвь, основанную на вышестоящем ведущем, cherry-pick коммите, который вы хотите изменить, а затем commit --amend, чтобы изменить его. Это должно сохранить авторство.

...