Удалить строку, которая не существует в текущей ветви - PullRequest
1 голос
/ 03 июня 2019

Я работаю в филиале, скажем, b1.Основная ветвь, которая должна быть развернута, скажем, stage.Я разветвлял свою b1 ветку от master - это наше соглашение.

Так что вот ситуация.Я в настоящее время в b1.В одном файле я назову это users.txt есть фрагмент, который выглядит так:

print("Hello user")
print("Bye user")

В stage ветке тот же фрагмент выглядит так:

print("Hello user")
print("You are welcome")
print("Bye user")

Теперь в моей рабочей (b1) ветке я предполагаю внести такое изменение, что при слиянии с stage удалит эту строку: print("You are welcome") и сделает ветку stage похожей на это.Другими словами, после выполнения git checkout stage git merge b1 - файл stage user.txt будет выглядеть следующим образом:

print("Hello user")
print("Bye user")

Другими словами: удалите строку в ветви stage, сделавизменение в ветке b1, где строка, которая должна быть удалена, не существует в b1 в первую очередь.

Одно предостережение: мне не разрешено сливаться stage в b1 по соглашению (если честно - я не понимаю)

1 Ответ

0 голосов
/ 03 июня 2019

(Отказ от ответственности за устаревший ответ: вопрос был отредактирован после моего ответа, теперь stage не должен быть объединен с веткой функций)


С b1 иУ stage разные начальные состояния для файла users.txt, вам сначала нужно обновить b1, чтобы отследить последние изменения, а именно новую строку, в которой он отсутствует.

git checkout stage
git pull
git checkout b1
git merge stage

На данный моментВы можете (или нет) решать конфликты.Тогда ваш users.txt будет похож на тот, что на stage.Просто удалите строку, добавьте и зафиксируйте:

# go delete the line in "users.txt" then...
git add path/to/users.txt
git commit -m "Deleted said line"

Редактируйте после вашего комментария отсутствие стадии слияния с объектами

Если вы не можете объединить stage in, но разрешено объединить объект, из которого была создана линия, иди к нему.Вам нужно определить, от какого коммита он получен:

git log -1 --oneline -S "Copy the text of the line here"

Это выведет последний коммит, который коснулся строки.Обратите внимание на его хэш.Затем вы можете импортировать этот коммит в вашу ветку с помощью черри, как намекает Тераот в комментариях.

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