Существует несколько вопросов о переполнении стека, в которых рассматривается проблема постановки и передачи только частей из файлов. Однако я не могу заставить его работать.
Скажем, мы хотим реализовать фиктивный математический класс в php (язык не имеет значения) с некоторыми базовыми методами, такими как: add
, subtract
, multiply
и divide.
Начнем с определения класса:
<?php
class Math {
}
?>
Сейчас:
$ git add math.php
$ git commit -m "Create Math class."
На следующем шаге мы реализуем как add
, так и subtract
четыре метода:
<?php
class Math {
public function add($a, $b) {
return $a + $b;
}
public function subtract($a, $b) {
return $a - $b;
}
}
?>
Но теперь мы хотим зафиксировать реализацию методов add
и subtract
в отдельных фиксациях.
Возможно ли это?
Что я пробовал
$ git add -p
Появится следующее сообщение:
Мне бы хотелось разбить кусок на более мелкие куски, поэтому я нажимаю s
, и появляется следующее сообщение:
Кажется, что git не разделил его на более мелкие куски.
Попробуйте теперь вручную отредактировать текущий кусок. Поэтому я нажимаю: e
.
Мой текстовый редактор по умолчанию (возвышенный текст) открывается, и здесь я могу отредактировать ханк:
Я пытаюсь просто удалить строку 8,9,10,11 - потому что я хочу создать только функцию add
.
Я сохраняю, закрываю редактор, но git говорит:
Your edited hunk does not apply. Edit again (saying "no" discards!) [y/n]?
Я действительно новичок в git add -p
и интерактивной постановке, поэтому, возможно, это то, что я делаю неправильно, или просто невозможно, чего я хочу, и действительно надеюсь, что у более опытных пользователей git есть некоторые инструкции, возможно, также решение для меня.
Спасибо!