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

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

я использую git 1.7.5,


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

4 ответа

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

git reset -p

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

ОБНОВИТЬ

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

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

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

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

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

Другие вопросы по тегам