Существует множество вопросов о переполнении стека, в которых рассматривается проблема постановки и передачи только частей из файлов. Однако я не могу заставить его работать.Git: внести частичные изменения
Допустим, мы хотим реализовать фиктивный математический класс в 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
. сохраняю, закройте редактор, но мерзавец говорит:
Your edited hunk does not apply. Edit again (saying "no" discards!) [y/n]?
Я действительно новичок в git add -p
и интерактивную постановку, так что, возможно, это что-то я делаю не так, или просто это не возможно, то, что я хочу, и действительно надеюсь, что некоторые более опытные пользователи git имеют некоторые инструкции, возможно, также решение для меня.
Спасибо!
Вы пытаетесь узнать «git way» этого? Лично я не беспокоюсь о таких деталях. Я бы просто удалял одну функцию, фиксировал ее, добавлял ее и фиксировал. – TheBuzzSaw
Да, это именно то, что я сделал в своем последнем проекте. Возможно, это самый простой способ. Тем не менее, я хотел бы сделать это в git, а затем решить, какой способ выбрать. –
Возможный дубликат [Commit only часть файла в Git] (http://stackoverflow.com/questions/1085162/commit-only-part-of-a-file-in-git) – 7ochem