Какой самый быстрый способ вытащить части нового файла в git? - PullRequest
21 голосов
/ 26 июля 2011

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

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


Чтобы уточнить, этот вопрос относится только к новым aka неотслеживаемым файлам!

Ответы [ 4 ]

7 голосов
/ 13 июня 2012

Из командной строки введите:

git reset -p

Это позволит вам выборочно отключать фрагменты из индекса, используя стандартный интерфейс командной строки для управления фрагментами. Это противоположно git add -p.

ОБНОВЛЕНИЕ

ОК, может показаться, что вы не можете выборочно ставить различные фрагменты, когда файл новый.Учитывая, что git-gui и стандартный редактор git hunk не позволяют этого, это, вероятно, невозможно.

1 голос
/ 01 октября 2013

Я просто столкнулся с той же проблемой: я только что зафиксировал новый файл, и я хотел удалить некоторые строки в этом файле и сделать их отдельным коммитом. Решение, которое я разработал, было:

  • Начните с коммита, который добавляет новый файл
  • Удалите строки, которые вы хотели удалить из исходного файла, внесите эти изменения и git commit -m 'REVERTME'
  • Создать новый коммит, который отменяет этот последний коммит: git revert HEAD
  • Используйте git rebase -i для fixup первого нового коммита и, необязательно, reword для возврата комита.
1 голос
/ 13 июня 2012

Используя fugitive, вы можете легко это сделать. Просто вызовите команду :Gdiff, затем поставьте и удалите все, что вы хотите. Вы даже можете редактировать индексный файл напрямую. Конечно, это решение требует, чтобы вы чувствовали себя достаточно комфортно с vim и vimdiff ...

0 голосов
/ 21 декабря 2017

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...