Отменить изменения в одной строке - PullRequest
24 голосов
/ 01 июня 2011

Я заметил, что в Tower (Git-клиент для Mac) пользователь может отменить изменения, даже построчно. Интересно, как это можно сделать с помощью командной строки? или, может быть, это что-то особенное в башне?

Я часто оказываюсь в этом случае:

@@ -391,7 +392,7 @@ extern BOOL validateReceiptAtPath(NSString *path);

       NSURL *url = [self fileURL];
        if (url != nil) {
                NSRect readFrame = [self _readPreferenceOfFileAtURL:url];
-               
+
                for (NSScreen * screen in [NSScreen screens]) {
                        NSRect screenVisibleRect = [screen visibleFrame];
                        ...

Посмотрите, как у меня есть один + и один -? Я хотел бы отказаться от него, чтобы мой коммит имел минимальные изменения (следовательно, меньше конфликтов и более легкая проверка)

:)

Ответы [ 5 ]

29 голосов
/ 01 июня 2011

Это называется интерактивная постановка и может быть выполнено с помощью git add -i или git add -p.Для получения дополнительной информации см. Справочную страницу git-add , pro git и Git Community Book .

РЕДАКТИРОВАТЬ:

Чтобы в интерактивном режиме удалить файл из архива, вы можете использовать:

git checkout -p HEAD

Также посмотрите этот вопрос SO: Отменить часть неустановленных изменений в git

2 голосов
/ 11 августа 2016

Чтобы отменить куски, используйте

git reset --patch

Это очень скрытая функция. Вы можете ставить ломоть за ломоть с git add --interactive, но вы не можете нестабильно таким образом. git add также имеет опцию --patch, которая похожа на --interactive, но идет прямо к пункту меню «патч» (в противном случае вы должны нажать p ENTER ).

git reset не отражает параметр --interactive, но имеет --patch.

1 голос
/ 01 июня 2011

Вы можете использовать git add -e для редактирования файла прямо перед его созданием.

0 голосов
/ 13 июня 2018

Для интерактивного удаления файла используйте:

git add -i

, тогда вы получите следующие опции -

*** Commands ***
  1: status       2: update       3: revert       4: add untracked
  5: patch        6: diff         7: quit         8: help

Используйте третий вариант revert для удаления файлов

Подробнее здесь - https://git -scm.com / book / ru / v2 / Git-Tools-Interactive-Staging

0 голосов
/ 12 октября 2017

Вы можете отбросить фрагменты или определенные строки с помощью бесплатной программы Исходное дерево .

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