Моя команда регулярно сталкивается с конфликтами слияний из-за того, что файл версий обновляется при каждой сборке.Это файл 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"