Как мне вернуть только определенные строки из определенного файла?
Предположим, что несколько коммитов назад я удалил кучу кода, а теперь хочу вернуть часть этого кода.
Некоторое время назад я использовал SourceTree, который позволяет вам просто выбрать строки, которые вы хотите вернуть из предыдущего коммита, и выбрать "Восстановить выбранные строки" (или что-то в этом роде). Сейчас я работаю в Linux и не могу найти GUI с такой функцией; поэтому мне интересно, как можно добиться этого из командной строки.
Первый вариант, который приходит на ум, - вернуть весь коммит, а затем изменить его, включив в него только код, который я хочу вернуть. Есть ли более простой / лучший способ?
1 ответ
Идея, как вы уже сказали:
отмените коммит, сбросьте его, затем повторно добавьте файл, но с помощью опции -p, чтобы вы могли выбрать, какую строку вы хотите.
пример:
git reset --soft HEAD^
git reset HEAD fileA
git add -p fileA
...
commit here