اگر branch مقصد از زمان جدا شدن commit تازه‌ای نداشته باشد، گیت فقط اشاره‌گر آن را جلو می‌برد و چیز جدیدی نمی‌سازد. --ff-only هر حالت دیگر را رد می‌کند و --no-ff حتی وقتی fast-forward ممکن است یک merge commit می‌سازد.