Ситуация такова, что у нашей команды есть ветвь dev, от которой мы отделены, чтобы работать над различными проблемами. Иногда это требует, чтобы мы работали над одним файлом, но в разных ветвях.
user1(file1.txt) X
/ \
dev(file1.txt) - A - B - C
\ \
user2(file1.txt) A' ---- B'
Проблема в том, что когда мы объединяем user2 (B ') в dev (C), он имеет тенденцию отменять любые изменения, сделанные в коммитах BC, то же самое происходит, если мы сначала пытаемся объединить C с B', а затем объединить user2 обратно в dev.
Например, если в dev (B) я добавил строку «это коммит B», то при слиянии между user2 (B ') и dev (C) эта строка исчезнет. То же самое происходит, когда мы пытаемся сохранить изменения перед коммитом B 'и слить с dev (C), а затем повторно применить изменения.
Есть ли способ вручную контролировать, какие изменения вносятся во время объединения, чтобы мы могли объединять только те изменения, которые, как мы знаем, мы сделали?
По сути, в настоящее время мы вынуждены делать это, когда сталкиваемся с этой проблемой, мы копируем изменения в одну сторону, создаем новую ветку из dev, помещаем изменения обратно и затем объединяем эти изменения обратно в dev, но я знаю, есть более разумный способ делать вещи.
Graph Log
* | | | | | | | 971fa0e Merge branch 'p' into 'dev'
|\ \ \ \ \ \ \ \
| |_|_|_|_|_|_|/
|/| | | | | | |
| * | | | | | | dcb98ea Merge branch 'dev' into 'p'
| |\ \ \ \ \ \ \
| | | |_|_|_|_|/
| | |/| | | | |
| * | | | | | | d6fd278
| * | | | | | | 9d47bd7
| * | | | | | | 11560e7
| | |_|/ / / /
| |/| | | | |
* | | | | | | ace54f1