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

Отменить изменения в одной строке

Я заметил, что в 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];
                        ...

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

:)

4b9b3361

Ответ 1

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

EDIT:

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

git checkout -p HEAD

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

Ответ 2

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

Ответ 3

Чтобы отменить использование hunks

git reset --patch

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

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

Ответ 4

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