Xcode + Git Local + remote Git
mardi 5 août 2014// Configuration user git config --global user.name "Michael Thiébault" git config --global user.email "michael.thiebault@test.be" // Ensuite on créé une clé public/privé ssh sur le serveur ssh-keygen -t rsa -C "michael.thiebault@test.be"Maintenant il suffit de prendre la clé publique se trouvant sur ~/.ssh/id_rsa.pub et de la mettre sur votre serveur Git remote et le tour est joué. Dans le cas ou vous avez déjà un projet existant lancer un terminal et positionnez vous dans la racine de votre projet Xcode:
// Création du dossier .git pour le dépôt local git init // Cherche tous les nouveaux fichiers et fichiers modifiés git add --all // Commit les nouveaux fichiers sur votre serveur git local avec le commentaires obligatoire git commit -m "Initial commit"Voilà, nous avons tout pour travailler avec notre projet Xcode et ces versionning en local Mais il peut être aussi intéressant de collaborer avec d’autres personnes. Cela consiste à gérer ces dépôts distants, en poussant (push) ou tirant (pull) des données depuis et vers ces dépôts quand vous souhaitez partager votre travail. Pour cela créé un dépôt (repository) sur votre serveur distant (remote) en vous connectant par ssh sur le serveur.
mkdir <name_repo>.git cd <name_repo>.git git --bare initUne fois le repo créé sur le serveur distant, pour ne pas devoir toujours taper l’url du serveur distant, on va créer un alias pour notre serveur distant:
git remote add nom_projet git://url_git:/chemin_repository/<name_repo>.gitou
git remote add nom_projet ssh://url_git:/chemin_repository/<name_repo>.gitLa commande suivante permet de vérifier les alias:
git remote -vEnsuite, il nous reste à pousser (push) les commit de notre projet sur le serveur distant.
git push origin masterVoilà, tout est en ordre, au niveau configuration. Maintenant dans Xcode vous trouverez l’alias qu’on a créé dans Xcode > Préférences Et vous pourrez maintenant directement faire dans Xcode des pull et des push via le menu Source Control! Pour récupérer un dépôt existant, par exemple pour qu’un collaborateur récupère votre projet, il faut faire un clone
git clone git://url_git:/chemin_repository/nom_projet.git
Création d’une nouvelle branche depuis mon master
git checkout -b v1.1
Pour voir les différentes branches de mon projet
git branch
Pour que quelqu’un d’autre se plug sur votre nouvelle branche
git checkout v1.1
Ensuite les prochains commit/push
git add -—all git commit -m "message" git push monProjet v1.1 git pull monProjet v1.1
Pour réinitialiser un fichier modifié localement
git checkout -- path/file
Si vous souhaitez annuler tous les changements de vos fichiers non commités
# Revert changes to modified files. git reset --hard
Pour remettre la branche locale dans le même état qu’une branche remote
git reset --hard origin/somebranch
Si vous souhaitez appliquer les changements « pushé » précédemment dans une branch sur votre branch locale
git pull origin nom-de-la-branch
Cette commande fait un git fetch + git merge
Pour exécuter un commit d’une autre branche sur votre branch actuelle
git cherry-pick id-du-commit
Pour récupérer les commentaires et id des derniers commit des gens:
git log -n 10
Cloner un repository distant dans une branche local dev
git clone url_git/nom_.git -b dev
En conclusion, sur GIT, les branches locales doivent être de même nom que les branches distantes (remote).
Pour merger deux branches, connecter vous via checkout sur votre branche dev par exemple et ensuite faites un «git merge int » et donc la branche dev est équivalente à int
git merge intPour comparer les modification de fichiers dans un dossier entre deux branches:
git diff master..yourbranch path/to/folderPour appliquer les changement effectuer dans gitignore de fichier déjà pusher:
> git rm -r --cached . > git add . > git commit -m ".gitignore is now working"Pour mettre un git sous la dernière version du git sur le remote:
> git fetch --all > git reset --hard origin/master