Modificările nu apar pe server

Am inceput sa folosesc GIT de scurta vreme si am dat peste o problema pe care nu o inteleg. Setup-ul e urmatorul: de pe serverul dev am facut git clone pe masina locala, am inceput sa lucrez, la final rulez git commit si/sau git add daca sunt fisiere noi ce trebuie urmarite. La finalul zilei de lucru fac git push pe serverul dev.

Problema: noile fisiere si modificari nu apar pe server. Daca rulez pe server git branch -a primesc urmatorul raspuns:
* master remotes/origin/master

Presimt ca-mi scapa ceva elementar…

Executa
git pull
pe server.
Daca nu merge, executa git remote -v si pe dev si pe server si vezi daca acestea coincid.
PM daca ai nevoie de ajutor suplimentar.

Cum ai configurat git pe server? Dacă ai făcut doar un git clone simplu, atunci nu ai să primești automat schimbările de pe local, chiar dacă dai push de pe local, pentru că probabil serverul nu e configurat ca fiind remote (cum zice și @tacheshun).

Am făcut server pentru git o singură dată, și asta acum mult timp, deci s-ar putea să mă înșel, dar cred că ăsta e un început bun: Getting git on the server. Apropo de asta, dacă vrei mai multe funcționalități instalate pe serverul propriu, există GitLab; l-am folosit o vreme pentru un proiect privat pentru care echipa devenise prea mare să mai încapă gratuit pe BitBucket și avea niște probleme, dar pare să meargă bine.

Nu sunt expert, insa git push iti impinge modificarile in remote. Undeva in 'origin/master'(care nu e acelasi lucru cu master) asta daca ai numit origin ca fiind remote-ul tau(e doar o conventie, se poate numi oricum, dar e mai des intalnit origin si/sau upstream).

Branch-ul de pe server, tot un branch local este, chiar daca se numeste master si are acelasi remote setat.

Daca vrei sa automatizezi procesul, adica la git push de pe dev sa se duca automat in server, iti trebuie un post-commit hook. Altfel, trebuie executat un git pull si pe server. No biggie, multa lume lucreaza asa :smile:

@tacheshun da, git pull a mers, in sensul ca acum macar imi indica faptul ca Your branch is behind 'origin/master' by 6 commits.

Insa acum cand dau git pull pe server primesc urmatoarea notificare:

Please, commit your changes or stash them before you can merge.
error: The following untracked working tree files would be overwritten by merge: [file list]
Please move or remove them before you can merge.
Aborting

@andreimic n-am configurat eu git-ul pe server, era deja gata setat de catre ‘departamentul it’ al clientului si n-as vrea sa stric ceva pe acolo. daca era al meu as fi putut testa liber dar asa prefer sa intreb inainte.

Din cat am citit ca sa scap de problema de mai sus ar trebui sa fac un branch separat de master pentru toate noile commit-uri, dupa care sa rulez un fech -all si reset:

git checkout master
git branch new-branch-to-save-current-commits
git fetch --all
git reset --hard origin/master  

Corect? :smile:

Problema este că ai modificat fișiere pe server după ce ai dat ultimul pull (ori intenționat, prin ftp, ori ai log-uri în git). Acum, ai două multe variante:

  • git stash - pentru a face un reset temporar. (din care poți reveni cu git stash pop)
  • git reset --hard HEAD pentru a face un reset definitiv

După ce faci asta, încerci iar un git pull și nu mai modifici niciodată fișierele de pe server.

3 Likes