Как сделать так, чтобы последние коды git-веток совпадали с другими ветками? - PullRequest
2 голосов
/ 28 июня 2019

Например, у меня есть ветка dev и master. Теперь они отличаются по кодам и некоторым двоичным файлам. И я хочу сделать последний коммит ветки dev точно таким же, как и последний коммит master ветки. Как?

Мой метод:

git diff dev master --binary > 1.patch
git checkout dev
git apply 1.patch

Есть ли другой простой способ?

Ответы [ 2 ]

2 голосов
/ 28 июня 2019

Если вы не против потерять собственную историю dev,

git checkout dev
git reset master --hard

Это дает dev точку в голове master.

Если вы хотитечтобы сохранить собственную историю dev,

git checkout dev
git merge $(git commit-tree -p HEAD -m "xxx" master^{tree})
# edit the commit message
git commit --amend

Создает коммит на dev, и коммит имеет тот же код с master.

2 голосов
/ 28 июня 2019

Ветка - это просто указатели, вы можете установить для них любой реф

git branch -f dev master

, что означает, что у них будет та же самая история впоследствии. (в качестве sidenote, просто проверьте другую ветку, прежде чем перемещать эту, или git будет жаловаться)

Опять же, если вам нужно было сохранить все от dev, которого нет на master, это не путь. Второе решение ElpieKay будет работать как шарм.

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