git - скрипт bash для автоматического резервирования конфликта слияния - PullRequest
0 голосов
/ 19 октября 2018

Моя команда регулярно сталкивается с конфликтами слияний из-за того, что файл версий обновляется при каждой сборке.Это файл version.txt.

Это то, к чему я уже дошел.Я только хочу разрешить конфликт version.txt, приняв либо текущую версию ветви, либо входящую ветку.Когда я использую приведенный ниже скрипт, мои PR отображаются пустыми, что, как я полагаю, означает, что он отклонил все локальные изменения, используя нашу стратегию.

Я бы хотел, чтобы скрипт сохранил все локальные изменения - за исключением тех, которые вызываютконфликт, разрешите конфликт и нажмите на текущую ветвь функции.Что я могу сделать, чтобы добиться этого?

#!/bin/bash

set -e

FEATURE_BRANCH=$1
DESTINATION_BRANCH=$2
read -p "Would you like to accept incoming or outgoing changes? {in/out}" OP

if [ $OP = "in" ]; then
  MERGE_STRATEGY="Xtheirs"
else
  MERGE_STRATEGY="Xours"
fi
echo "Pulling current branch"
git pull
echo "Checking out current branch"
git checkout $FEATURE_BRANCH
echo "Pulling destination branch"
git pull origin $DESTINATION_BRANCH -${MERGE_STRATEGY} <<-EOF
  :wq #this part is necessary because vim text editor is automatically opened to display a merge message.
EOF
echo "Conflict resolved, pushing back to feature branch"
git push origin $FEATURE_BRANCH
echo "PR ready for merge"
...