Infraestructure Setup help

Hi Fellas

we are an small web sites company and we are in the process to start using gitlab for our code.
im new at all of this git thing an this is what i want to do

local.git.repo > DEV.shared.hosting.server >customer approve > Production.shared.hosting.Server

local git code repo (computer) coders changing code
they commit to gitlab and the code is saved (with all the process in between)
the code goes (ftp) to a shared site DEV servers
.gitlab-ci.yml code For DEV server in a dev branch

build:
stage: build
script:

  • apt-get update -qq && apt-get install -y -qq lftp
  • lftp -u f_user,pass ftp.server.url -e “mirror --exclude .git/ --exclude .gitlab-ci.yml --exclude .gitignore --only-newer --ignore-time -R -p ./ /web/content ; quit”

everything ok only updates are uploaded

now i have the problem how to commit the customer approved changes from gitlab to de Production server,

some questions
¿can I just merge branches and put a different YML (ftp connection) in the master branch?
when i merge branches does .gitlab-ci.yml get overwrote too?
is that simple or you recommend another flow setup…
is there any better way to send the code to the servers? or better command for lftp to just upload only the “touched code”

in this example i gonna need (in my common case wordpress dev) two different wp-config.php one in dev branch and another in the master branch.

i will really appreciate your advice and guidance for this setup

Thanks in advance

Julio Ramenzoni