Отменить изменения в одной строке
Я заметил, что в 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];
...
Посмотрите, как у меня есть один +
и один -
? Я бы хотел отбросить его, поэтому моя фиксация имеет минимальные изменения (следовательно, меньше возможностей конфликтов и более простой обзор)
:)
Ответы
Ответ 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
Вы можете отбросить ханки или конкретные строки с помощью бесплатной программы Дерево источников.