Veja a resposta por que usar o git para sincronização não é uma boa ideia.
Aqui está um caso de teste que mostra como sincronizar o git com dois diretórios já preenchidos.
cd /tmp
mkdir foo
cd foo
git init
echo "hello" > README.md
git add .
git commit -m "initial commit"
git remote add origin [email protected]:<myUser>/test.git
git push -u origin master
Neste ponto, eu tenho um repositório git local que é sincronizado com o meu servidor git. Agora vou criar uma nova cópia do arquivo REDME.md como se tivesse sido rsyn-ed para outra máquina
cd /tmp
mkdir bar
cd bar
git init
echo "hello" > README.md
git add .
git commit -m "initial commit"
git remote add origin [email protected]:<myUser>/test.git
git push -u origin master
Como a barra está atrás do mestre, não consigo empurrar.
To [email protected]:<myUser>/test.git
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to '[email protected]:<myUser>/test.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Merge the remote changes (e.g. 'git pull')
hint: before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
Eu tentei fazer um git pull. O Git fundiu o repositório, mas não baixou o arquivo, porque ele já existe localmente.
git pull origin master From github.com:/test * branch
master -> FETCH_HEAD Merge made by the 'recursive' strategy.
Você também deve sempre lembrar de fazer um git pull antes de alterar qualquer arquivo em cada sistema; caso contrário, você receberá conflitos que precisam ser resolvidos.