Logo Khaganat

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
fr:git [2016/05/13 13:21] YannKfr:git [2022/03/25 22:09] (Version actuelle) – Annuler les pseudo-modif zatalyz
Ligne 2: Ligne 2:
 Nous utilisons [[https://git.khaganat.net/|une instance locale de Gitlab]] pour gérer nos dépôts. Nous utilisons donc le système de gestion des dépôts Git. Nous récupérons aussi les données de Ryzom Core qui utilise le système de gestion des dépôts [[fr:mercurial|Mercurial]]. Nous utilisons [[https://git.khaganat.net/|une instance locale de Gitlab]] pour gérer nos dépôts. Nous utilisons donc le système de gestion des dépôts Git. Nous récupérons aussi les données de Ryzom Core qui utilise le système de gestion des dépôts [[fr:mercurial|Mercurial]].
  
-Voir aussi [[fr:principe_de_developpement_sur_khaganat|les principes de base et comment récupérer les données propres à Khaganat]].+Voir aussi [[fr:principe_de_developpement_sur_khaganat|les principes de base et comment récupérer les données propres à Khaganat]], ainsi que [[fr:gitflow]]. Les possibilités de Gitlab sont très bien présentées sur l'article [[https://makina-corpus.com/blog/metier/2019/gitlab-astuces-projets/|Gérer des projets avec Gitlab]].
  
 <WRAP center round info 60%> <WRAP center round info 60%>
Ligne 8: Ligne 8:
 </WRAP> </WRAP>
  
 +
 +
 +
 +===== Installer et paramétret Git chez soi =====
  
 Commencez par installer git sur votre ordinateur. Commencez par installer git sur votre ordinateur.
Ligne 45: Ligne 49:
 Afin de ne pas retaper son mot de passe à chaque "push", vous pouvez configurer ssh pour vous connecter directement à votre compte. Afin de ne pas retaper son mot de passe à chaque "push", vous pouvez configurer ssh pour vous connecter directement à votre compte.
  
-Commencez par [[fr:connexion_serveur_admin|générer votre clé ssh]] si ce n'est pas déjà fait et assurez-vous que l'agent ssh est lancé :+Commencez par [[fr:ssh#generer_une_cle|générer votre clé ssh]] si ce n'est pas déjà fait et assurez-vous que l'agent ssh est lancé :
   eval "$(ssh-agent -s)"   eval "$(ssh-agent -s)"
   ssh-add ~/.ssh/id_rsa   ssh-add ~/.ssh/id_rsa
Ligne 56: Ligne 60:
  
 <WRAP center round info 60%> <WRAP center round info 60%>
-Nous ne recommandons pas de passer uniquement par Github ; comme tout organisme centralisé et propriétaire, il est [[https://linuxfr.org/users/jehan/journaux/sourceforge-de-pire-en-pire-usurpation-d-identite-du-projet-gimp|susceptible de dérive]]. Mais c'est actuellement une plate-forme connu et très utilisée, une façon comme une autre de commencer. Jusque là, il n'y a eu aucune alerte sur leurs pratiques.+Nous ne recommandons pas de passer uniquement par Github ; comme tout organisme centralisé et propriétaire, il est [[https://linuxfr.org/users/jehan/journaux/sourceforge-de-pire-en-pire-usurpation-d-identite-du-projet-gimp|susceptible de dérive]]. Mais c'est actuellement une plate-forme connue et très utilisée, une façon comme une autre de commencer. Jusque là, il n'y a eu aucune alerte sur leurs pratiques.
  
 Notre [[https://git.khaganat.net/| instance gitlab]] n'est pas très puissante et, de ce fait, uniquement ouverte aux projets en rapport avec Khaganat.  Notre [[https://git.khaganat.net/| instance gitlab]] n'est pas très puissante et, de ce fait, uniquement ouverte aux projets en rapport avec Khaganat. 
 </WRAP> </WRAP>
  
 +Pour les projets sur notre gitlab, il faut se connecter via ssh. Regardez l'adresse dans ''Dépôts'' > ''Clone''. Cela devrait être quelque chose comme 
 +  git clone ssh://git@git.khaganat.net:3543/monuser/test.git
 +
 +
 +Si l'adresse change, pour indiquer la nouvelle, c'est la commande suivante :
 +  git remote set-url origin ssh://git@git.khaganat.net:3543/monuser/test.git
 ===== Commandes de base ===== ===== Commandes de base =====
 Pour lister ce qui est à jour dans votre dossier : Pour lister ce qui est à jour dans votre dossier :
Ligne 74: Ligne 84:
  
 Pour mettre à jour ce que vous avez ajouté/modifié : Pour mettre à jour ce que vous avez ajouté/modifié :
-  git commit m 'bla bla'+  git commit -m 'bla bla'
 Les fichiers auront en commentaire votre "blabla" à cette version des modifications. Les fichiers auront en commentaire votre "blabla" à cette version des modifications.
  
Ligne 81: Ligne 91:
 Cela utilise par défaut l'adresse que vous avez auparavant indiqué. Si vous envoyez sur Github, votre nom d'utilisateur et votre mot de passe sera demandé. Cela utilise par défaut l'adresse que vous avez auparavant indiqué. Si vous envoyez sur Github, votre nom d'utilisateur et votre mot de passe sera demandé.
  
 +==== D'une branche à l'autre ====
 +Si vous ne voyez pas certains fichiers ou modifications, c'est sans doute qu'ils n'ont pas encore été intégré à master et sont sur une branche à part (voir [[fr:gitflow|l'organisation gitflow]] du travail). 
 +
 +Pour lister toutes les branches, y compris celles qui ne sont pas décompressés depuis votre clone/pull :
 +  git branch -r
 +Pour voir la liste des branches sur votre installation actuelle, qui ont été décompressées (l'astérisque devant une des branches indique celle sur laquelle on est) :
 +  git branch
 +
 +Récupérez le nom de la branche, puis changez :
 +  git checkout develop
 +
 +Pour récupérer directement une branche précise (par exemple ici le client) :
 +  git clone -b develop ssh://git@git.khaganat.net:3543/khaganat/mmorpg_khanat/khanat-client.git 
 +
 +Et si vous voulez récupérer sans l'historique, par exemple juste pour tester le client en question sans s'encombrer, c'est l'option ''<nowiki>--depth 1</nowiki>'' qui va être utile : 
 +<code>git clone -b develop --depth 1 ssh://git@git.khaganat.net:3543/khaganat/mmorpg_khanat/khanat-client.git </code> 
 +
 +Voir aussi 
 +  * [[https://git-scm.com/book/fr/v1/Les-branches-avec-Git-Gestion-de-branches|Les branches avec Git - Gestion de branches]] sur [[https://git-scm.com/]]
 +  * [[http://fr.gitready.com/beginner/2009/03/09/remote-tracking-branches.html|Branche de suivi distant ]] sur Git Ready
 +
 +===== Importer les nouveautés de Ryzomcore =====
 +J'utilise un fork de ryzomcore sur github à partir des sources
 +
 +  cd khanat_opennel_code
 +  git pull
 +  git checkout ryzomcore
 +  git remote add upstream https://github.com/ryzom/ryzomcore.git
 +  git fetch upstream
 +Essayer ça si vous utiliser les même sources  
 +  git merge upstream/develop
 +  git push origin
 +
 +Et voila, c'est à jour :)
 +
 +Si il y a des problemes de merge en changeant de source, mais ça reprend de zero
 +  
 +  git reset --hard upstream/compatibility-develop
 +  git push origin ryzomcore --force
 +
 +===== Annuler les modifications locales =====
 +Parfois, lors d'un pull, ce message apparait : "error: Vos modifications locales aux fichiers suivants seraient écrasées par la fusion".
 +
 +Soit on fait un commit, on push, soit si ce n'est pas des trucs qu'on veut garder, on fait le bourrin et on efface : 
 +  git restore *
 +
 +Un ''git status'' ensuite devrait montrer que tout va bien et qu'on peut tirer depuis la branche amont.
 ===== Aider la compilation de nos projets ===== ===== Aider la compilation de nos projets =====
  
Ligne 86: Ligne 143:
  
 Installer et configures docker. En super utilisateur (faites //sudo// avant sinon), installez ce qui suis : Installer et configures docker. En super utilisateur (faites //sudo// avant sinon), installez ce qui suis :
-  apt-get install docker +  sudo apt install docker.io 
-  systemctl start docker+  sudo systemctl start docker
      
  
Ligne 120: Ligne 177:
   sudo docker exec -it gitlab-runner gitlab-runner register   sudo docker exec -it gitlab-runner gitlab-runner register
  
-Rendez-vous sur la page [[https://git.khaganat.net/khaganat/khanat/runners]] pour les indications à entrer+Vous aurez besoin d'information spécifique de votre projet. 
 +(à savoir l'URL et le "registration token" 
 +[définit : settings CI/CD de votre projet GIT]) 
 + 
 +Ex.:  
 + [[https://git.khaganat.net/khaganat/mmorpg_khanat/opennel-pymanager/settings/ci_cd]] 
 + [[https://git.khaganat.net/khaganat/mmorpg_khanat/khanat-opennel-code/settings/ci_cd]] 
 + [[https://git.khaganat.net/khaganat/khanat/runners]] 
  
 ^ Question ^ Réponse possible (à adapter) ^                                                    ^ Question ^ Réponse possible (à adapter) ^                                                   
Ligne 126: Ligne 191:
 | Please enter the gitlab-ci token for this runner: | Uxhiv1oGgNd6FECKDMn5((Indiqué sur https://git.khaganat.net/khaganat/khanat/runners)) |  | Please enter the gitlab-ci token for this runner: | Uxhiv1oGgNd6FECKDMn5((Indiqué sur https://git.khaganat.net/khaganat/khanat/runners)) | 
 | Please enter the gitlab-ci description for this runner: | un nom pour vous identifier dans la liste des runners, par exemple pseudo+OS  | Please enter the gitlab-ci description for this runner: | un nom pour vous identifier dans la liste des runners, par exemple pseudo+OS 
-| Please enter the gitlab-ci tags for this runner (comma separated): | Docker,Linux  +| Please enter the gitlab-ci tags for this runner (comma separated): | Docker,Linux  
 +| Whether to run untagged builds | true | 
 +| Whether to lock the Runner to current project | true |
 | Please enter the executor: docker-ssh+machine, docker, docker-ssh, parallels, shell, ssh, virtualbox, docker+machine: | docker |  | Please enter the executor: docker-ssh+machine, docker, docker-ssh, parallels, shell, ssh, virtualbox, docker+machine: | docker | 
 | Please enter the default Docker image (eg. ruby:2.1): | ubuntu:16.04((Même si ce n'est pas votre OS, Dremor a dit que c'était ça !)) |  | Please enter the default Docker image (eg. ruby:2.1): | ubuntu:16.04((Même si ce n'est pas votre OS, Dremor a dit que c'était ça !)) | 
  
 +Dans votre fichier .gitlab-ci.yml [présent dans votre GIT], il faut s'assurer d'avoir un tag identique (par exemple Docker)
  
 ===== Ressources utiles ===== ===== Ressources utiles =====
Ligne 136: Ligne 204:
   * http://christopheducamp.com/2013/12/15/github-pour-nuls-partie-1/ : Un tuto un peu plus long, où chaque commande est expliquée   * http://christopheducamp.com/2013/12/15/github-pour-nuls-partie-1/ : Un tuto un peu plus long, où chaque commande est expliquée
   * http://ndpsoftware.com/git-cheatsheet.html : Un pense-bête très bien fait pour retrouver les commandes.   * http://ndpsoftware.com/git-cheatsheet.html : Un pense-bête très bien fait pour retrouver les commandes.
 +
 +
 +<WRAP yellow center round box 75%>
 +{{ :fr:grafikart.png?nolink |}}
 +
 +Grafikart propose une [[https://www.grafikart.fr/formations/git|formation en ligne gratuite à Git]], de très bonne facture.
 +
 +Il y a en tout 16 chapitres et plus de trois heures de vidéo.
 +
 +Vous pouvez [[https://www.grafikart.fr/premium|soutenir son travail en vous abonnant]] sans que cela ne soit nécessaire pour visionner les cours.
 +
 +
 +<WRAP centeralign>En voici la vidéo d'introduction :
 +
 +{{youtube>rP3T0Ee6pLU?medium}}
 +
 +</WRAP>
 +
 +</WRAP>
  
 Voir aussi l'utilisation de [[fr:mercurial|Mercurial]], un autre système de gestion de version. Voir aussi l'utilisation de [[fr:mercurial|Mercurial]], un autre système de gestion de version.
 +
 +===== Forges alternatives basées sur Git =====
 +
 +Forges indépendantes documentées :
 +  * [[https://notabug.org/|NotABug.org]] : basée sur [[https://notabug.org/hp/gogs/|leur fork]] de [[https://gogs.io/|Gogs]] dédiée à l'hébergement de projet sous licence libre. C'est un des projets de [[https://peers.community/|The Peers Community]].
 +  * [[https://codeberg.org/|Codeberg]] : basée sur [[https://gitea.io/en-us/|Gitea]], un fork de Gogs plus communautaire dans sa gestion, dédiée à l'hébergement de projet sous licence libre et open source.
 +
 +Divers membre du collectif [[chatons.org|C.H.A.T.O.N.S]] :
 +  * [[https://forge.tedomum.net|TeDomum.net]], association loi 1901, forge basée sur [[https://about.gitlab.com/|Gitlab CE]], [[https://tedomum.net/documentation/administration/conception/serveurs/|hébergement en France]], semble ouvert à tous et à tout usage.
 +  * [[roflcopter.fr|roflcopter.fr]], idem.
 +
 +Autres forges moins documentée :
 +  * [[https://git.en-root.org|en-root.org]] : basée sur Gitlab CE
 +  * [[https://gitlab.adullact.net|Forge de l'Adullact]] : basée sur Gitlab CE, orientée [[https://gitlab.adullact.net/adullact/Charte-Gitlat-Adullact/blob/master/README.md|logiciels libres métier]]
 +  * [[https://gitnet.fr|gitnet.fr]] : basée sur Gitea
  
 {{tag>Données Outils}} {{tag>Données Outils}}
CC Attribution-Share Alike 4.0 International Driven by DokuWiki
fr/git.1463138494.txt.gz · Dernière modification : 2021/12/03 19:18 (modification externe)

Licences Mentions légales Accueil du site Contact