Какой самый быстрый способ отключить части нового файла в git?
Когда я хочу разбить новый файл на несколько коммитов, я могу git add -N <file>
, а затем интерактивно сценить строки, используя git gui
. Однако, когда я делаю ошибку во время постановки, git gui
не позволит мне отключать отдельные строки, потому что это новый файл (который кажется мне ошибкой). Конечно, я всегда могу остановить весь файл и начать заново, но мне интересно, есть ли более эффективный способ сделать это.
Я использую git 1.7.5
.
Чтобы уточнить, этот вопрос специфичен для новых aka незатрещенных файлов!
Ответы
Ответ 1
В командной строке введите:
git reset -p
Это позволит вам selectivelty нестационарные ханки из индекса с помощью стандартного интерфейса командной строки для управления кусками. Это противоположно git add -p
.
UPDATE
ОК, кажется, что вы не можете выборочно создавать разные куски, когда файл является новым. Учитывая, что git -gui и стандартный git редактор hunk не разрешают этого, возможно, это невозможно.
Ответ 2
Используя fugitive
, вы можете легко сделать это. Просто вызовите команду :Gdiff
, а затем выполните этап и неустановите все, что хотите. Вы даже можете отредактировать индексный файл напрямую. Разумеется, для этого решения вам достаточно удобно пользоваться vim
и vimdiff
...
Ответ 3
Я просто столкнулся с одной и той же проблемой: я только что записал новый файл, и мне нужно было отключить некоторые строки в этом файле и использовать их как отдельную фиксацию. Решение, которое я разработал, было:
- Начать коммит, добавляющий новый файл
- Удалите строки, которые вы хотите отключить в исходном файле, выполните эти изменения и
git commit -m 'REVERTME'
- Создайте новый коммит, который возвращает последнюю фиксацию:
git revert HEAD
- Используйте
git rebase -i
to fixup
первый новый фиксатор и необязательно reword
вернуть фиксацию.
Ответ 4
Другим простым способом сортировки является вырезание всего из файла, за исключением одной строки, которую вы хотите в первом коммите. Выполните этап, а затем добавьте оставшуюся часть файла. С этого момента вы можете ставить hunks/lines как обычно