git repo op andere computer?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

- Raoul -

- Raoul -

07/02/2013 18:00:20
Quote Anchor link
Hoi,

Ik heb de volgende situatie, heb dus een GIT repo die staat op een andere computer. Nu probeer ik mijn GIT repo hier ook op deze computer binnen te halen maar het wil niet echt lukken.

Ik probeerde het volgende:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
git init
git remote add origin https://github.com/rvandenberge/Framework.git
git pull origin master


Maar die pull haalt helemaal niks binnen in m'n directory... iemand die me kan helpen?

Raoul
 
PHP hulp

PHP hulp

26/12/2024 08:54:20
 
Moose -

Moose -

07/02/2013 18:04:51
Quote Anchor link
Probeer git clone
 
Wouter J

Wouter J

07/02/2013 18:18:46
Quote Anchor link
Allereerst moet je de repository dan clonen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
$ cd wamp/www/

$ git clone http://github.com/rvandenberge/Framework


Nu wordt er een mapje Framework aangemaakt in de wamp/www map. Deze map is gewoon een kopie van je repository. (merk op dat ik de url ook veranderd heeft, je zal straks zien waarom)

Vervolgens heb je nog geen andere branches (wat overigens eerder slecht is dan goed), dus daar hoef je je geen zorgen over te maken.

Nu moeten we nog even de remote urls goed instellen, als we de remotes nu tonen zien we dit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
$ git remote -v
origin http://github.com/rvandenberge/Framework (push)
origin http://github.com/rvandenberge/Framework (fetch)

Voor fetch is dit goed, daar hoeven we geen SSH verbinding voor te hebben, voor push moeten we wel een ssh verbinding hebben. Wat je dan doet is gewoon even die URL veranderen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$ git remote set-url --push origin https://[email protected]/rvandenberge/Framework.git


Als je nu de remotes toont zul je zien dat ze allebei goed zijn.

Nu moet je een nieuwe branch aanmaken waarin je gaat werken. Als je aan iets werkt moet je dat altijd in een andere branch dan de master branch doen, in principe is er geen 1 commit (behalve merge commits) die je aanmaakt in de master branch. Stel dat we nu een Repository klasse willen gaan toevoegen, dan willen we bijv. een 'add_repository' branch maken:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$ git checkout -b add_repository


Nu kunnen we lekker aan de slag. Nu ben je klaar voor vandaag en dan push je het naar de server:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
$ git push origin
password: ...


Nu ga je morgen weer verder op je andere computer en dan zit je met een probleem. Je wilt graag de code van de branch waar je vandaag aan gewerkt hebt hebben. Daarvoor moet je eerst de data fetchen vanaf de server (let op, gebruik nooit pull maar altijd een handmatige fetch + merge):
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$ git fetch origin

Nu krijg je te zien welke branches en er veranderd zijn. Deze hebben een prefix van de remote, je krijgt nu dus een 'origin/add_repository' branch. Deze kun je niet veranderen, alleen maar lezen. Als je nu weer aan de slag moet zul je jou eigen branch moeten maken, gebaseerd op 'origin/add_repository':
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$ git checkout -b add_repository origin/add_repository

Nu kun je weer lekker aan de slag en aan het eind van de avond push je weer naar de server:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$ git push origin


Nu ga je overmorgen aan de slag op die andere computer. Dan heb je dus een andere situatie, je hebt namelijk al een 'add_repository' branch. In dit geval gaan we gewoon weer de server fetchen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$ git fetch origin

Nu zien we weer dat de branch 'origin/add_repository' is veranderd. Nu kunnen we het gaan mergen in de huidige branch:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$ git merge origin/add_repository


Soms is het zo dat je problemen krijgt, je hebt iets op de andere computer aangepast waar je ook hier wat hebt aangepast. In dat geval zal het mergen stoppen en krijg je te zien in welke bestanden er iets mis is. Je gaat dan naar zo'n branch toe en kijkt of je ergens de merge conflict markers ziet:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<<<<<<< add_repository
$foo = preg_replace('/foo/', 'bar', $foo);
=======
$foo = str_replace('foo', 'bar', $foo);
>>>>>>> origin/add_repository

Wat zien we hier nou allemaal? Nou eerst zien we heel wat <'jes om aan te geven dat hier een conflict was. Vervolgens krijgen we de code uit de branch 'add_repository' te zien (aangegeven door wat er achter de < staat). De ='jes geven aan dat hierna de code komt uit de branch 'origin/add_repository' (aangegeven door wat er achter > staat) en de hele reeks >'jes geven weer aan dat het conflict weer eindigt.

In dit geval moet je gaan kiezen welke code je gaat gebruiken en je gaat natuurlijk de laatste code gebruiken, je verwijderd dus alle rijen die niet nodig zijn:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$foo = str_replace('foo', 'bar', $foo);

Als je alle bestanden hebt opgelost (dit kun je controleren met 'git status') voer je 'git commit' uit welke het mergen zal eindigen.


Dit is Git in een notendop, ik hoor wel als je vragen hebt!
 
- Raoul -

- Raoul -

07/02/2013 18:25:28
Quote Anchor link
Wouter hartelijk bedankt! Heb het werkend gekregen. Wist al hoe alles moest met 1 computer, maar niet met 2 computers haha. Zal dit topic bookmarken ter referentie.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.