Подтвердить что ты не робот

Какой самый быстрый способ отключить части нового файла в git?

Когда я хочу разбить новый файл на несколько коммитов, я могу git add -N <file>, а затем интерактивно сценить строки, используя git gui. Однако, когда я делаю ошибку во время постановки, git gui не позволит мне отключать отдельные строки, потому что это новый файл (который кажется мне ошибкой). Конечно, я всегда могу остановить весь файл и начать заново, но мне интересно, есть ли более эффективный способ сделать это.

Я использую git 1.7.5.


Чтобы уточнить, этот вопрос специфичен для новых aka незатрещенных файлов!

4b9b3361

Ответ 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 как обычно