refactor: Improve Git synchronization process in update-prod.sh
Enhanced the update-prod.sh script to better handle Git operations. The script now checks for local changes before syncing, fetches tags from the origin, and performs a hard reset to the current branch, providing clearer error messages for potential failures.
This commit is contained in:
+19
-3
@@ -143,10 +143,26 @@ APP_VERSION="$6"
|
|||||||
|
|
||||||
cd "$REMOTE_DIR" || { echo "Error: Remote directory '$REMOTE_DIR' not found."; exit 1; }
|
cd "$REMOTE_DIR" || { echo "Error: Remote directory '$REMOTE_DIR' not found."; exit 1; }
|
||||||
|
|
||||||
echo "Pulling latest changes from Git..."
|
echo "Syncing repository from origin..."
|
||||||
git pull --tags
|
CURRENT_BRANCH="$(git branch --show-current)"
|
||||||
|
if [ -z "$CURRENT_BRANCH" ]; then
|
||||||
|
echo "Error: Could not determine current Git branch."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! git diff-index --quiet HEAD -- || [ -n "$(git status --porcelain)" ]; then
|
||||||
|
echo "Warning: Local changes on deployment host will be discarded."
|
||||||
|
fi
|
||||||
|
|
||||||
|
git fetch --tags origin
|
||||||
if [ $? -ne 0 ]; then
|
if [ $? -ne 0 ]; then
|
||||||
echo "Error: Git pull failed."
|
echo "Error: Git fetch failed."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
git reset --hard "origin/${CURRENT_BRANCH}"
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
echo "Error: Git reset to origin/${CURRENT_BRANCH} failed."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user