Иногда, когда я делал некоторые изменения (git diff), я хочу, чтобы часть из них (только определенные файлы) добавляла к более старой фиксации.Добавить изменения в любое совершение
Что это самый простой способ сделать это?
Иногда, когда я делал некоторые изменения (git diff), я хочу, чтобы часть из них (только определенные файлы) добавляла к более старой фиксации.Добавить изменения в любое совершение
Что это самый простой способ сделать это?
Вы можете добавить изменения, которые вы хотели бы объединить в более старой фиксации как этот
git add [path]
или git add -p
затем создать Fixup совершить с хэш коммита вы хотели бы перенести эти изменения
пример:
git commit --fixup [commit hash]
К м Ерге эти 2 фиксаций в 1 вы, наконец, нужно будет сделать интерактивная Rebase
git rebase -i origin/[branch name] --autosquash
изделия что вы должны заставить толчок (с осторожностью) после интерактивной Rebase
git push -f
В моей версии git нет --fixup для команды commit. Я создал несколько коммитов и запустил git rebase -i HEAD ~
Когда ты скажем, «добавить к более старой фиксации», я предполагаю, что вы хотите изменить предыдущую фиксацию:
git add ... # add as you see fit, maybe with -p
git commit --amend
Это приведет к добавлению изменений в предыдущую фиксацию. Помните, что это изменяет историю, поэтому, если вы нажали эту фиксацию на удаленный, это может быть не очень хорошая идея (см. How do I push amended commit to the remote Git repository?).
Если вы хотите изменить другую фиксацию, чем последнюю, вам нужно будет либо использовать --fixup
, либо зафиксировать ее, а затем использовать rebase --interactive
, чтобы выложить ее в нужную фиксацию. Но опять же, имейте в виду, что вы переписываете историю и можете столкнуться не только с проблемами, а с конфликтами с последующими коммитами.
Возможный дубликат [Как git-cherry-pick только изменения в определенных файлах?] (Http://stackoverflow.com/questions/5717026/how-to-git-cherry-pick-only-changes-to- определенные файлы) – isherwood
Попробуйте 'git add -i' (добавить git help) – Kenney