DESTINATION_PATH = lady/blog
 DESTINATION = $(DESTINATION_HOST):$(DESTINATION_PATH)
 
+GIT_FORCE =
+
 build:
        deno run --allow-read=. --allow-write=. $(BEORN)
        touch .grass
        @if output=$$(git status --porcelain) && [ ! -z "$$output" ]; then echo 'Error: There are uncommitted changes!' >&2; echo 'Commit changes and run `make` before syncing.' >&2; exit 1; fi
        @if output=$$(git status --porcelain) && [ ! -z "$$output" ]; then echo 'Error: There are uncommitted changes!' >&2; echo 'Commit changes and run `make` before syncing.' >&2; exit 1; fi
 
-dry-sync: ensure-clean ensure-branch-up-to-date ensure-build
+dry-sync: ensure-clean$(if $(GIT_FORCE),, ensure-branch-up-to-date) ensure-build
        $(RSYNC) $(RSYNC_FLAGS) --del --dry-run --filter=". $(RSYNC_FILTER)" --iconv=$(SOURCE_CHARSET),$(DESTINATION_CHARSET) $(RSYNC_OPTIONS) . $(DESTINATION)
 
-sync: ensure-clean ensure-branch-up-to-date ensure-build
+sync: ensure-clean$(if $(GIT_FORCE),, ensure-branch-up-to-date) ensure-build
        $(RSYNC) $(RSYNC_FLAGS) --del --filter=". $(RSYNC_FILTER)" --iconv=$(SOURCE_CHARSET),$(DESTINATION_CHARSET) $(RSYNC_OPTIONS) . $(DESTINATION)
-       git push --force
+       git push$(if $(GIT_FORCE), --force,)
 
 .PHONY: build dry-sync ensure-branch-up-to-date ensure-build ensure-clean sync;