Outils pour utilisateurs

Outils du site


all:bibles:applications:git:installation

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
all:bibles:applications:git:installation [2024/12/02 13:48] – [Configuration difftool/mergetool] omeylhocall:bibles:applications:git:installation [2025/11/05 09:10] (Version actuelle) – [Accès complet par token] omeylhoc
Ligne 1: Ligne 1:
 +====== Mise en place ======
 +
 +----
 +
 +===== Installation =====
 +
 +==== Git ====
 +
 +Installer :
 +
 +  * Git for Windows
 +  * TortoiseSVN
 +
 +==== tree ====
 +
 +=== Utilisation commande Windows ===
 +
 +Pour utiliser la commande tree Windows créer l'alias suivant dans le fichier <color #00a2e8>/c/Users/<login>/.bashrc</color> :
 +
 +<code bash>
 +alias tree='cmd //c tree //a //f'
 +</code>
 +
 +=== Installer la commande linux ===
 +
 +  * Aller sur le site [[http://gnuwin32.sourceforge.net/packages.html|gnuwin32]]
 +  * Choisir le package tree
 +  * Télécharger le zip correspondant au « binaries »
 +  * Extraire le fichier tree.exe du répertoire bin et le mettre dans <color #00a2e8>C:\Program Files\Git\usr\bin</color>
 +
 +==== zip ====
 +
 +  * Télécharger le fichier <color #00a2e8>zip-3.0-bin.zip</color> sur le site [[https://sourceforge.net/projects/gnuwin32/files/zip/3.0]]
 +  * Copier le fichier <color #00a2e8>bin/zip.exe</color> dans le répertoire <color #00a2e8>C:\Program Files\Git\mingw64\bin</color>
 +  * Télécharger le fichier <color #00a2e8>bzip2-1.0.5-bin.zip</color> sur le site [[https://sourceforge.net/projects/gnuwin32/files/bzip2/1.0.5]]
 +  * Copier le fichier <color #00a2e8>bin/bzip2.dll</color> dans le répertoire <color #00a2e8>C:\Program Files\Git\mingw64\bin</color>
 +  * Lancer la commande ''**zip**'' dans une console Git Bash pour vérifier que tout est bien installé
 +
 +==== rsync ====
 +
 +  * Télécharger les dernières versions disponibles de rsync, libzstd et libxxhash sur le site [[https://repo.msys2.org/msys/x86_64/]] 
 +  * Décompresser les archives zst puis extraire le contenu
 +
 +<note tip>Utiliser zstd en suivant ce tuto https://shchae7.medium.com/how-to-use-rsync-on-git-bash-6c6bba6a03ca</note>
 +
 +<code bash>
 +zstd -d rsync-3.2.6-1-x86_64.pkg.tar.zst libzstd-1.5.2-2-x86_64.pkg.tar.zst libxxhash-0.8.1-1-x86_64.pkg.tar.zst
 +tar xvf rsync-3.2.6-1-x86_64.pkg.tar
 +tar xvf libzstd-1.5.2-2-x86_64.pkg.tar
 +tar xvf libxxhash-0.8.1-1-x86_64.pkg.tar
 +</code>
 +
 +  * Copier le fichier <color #00a2e8>usr/bin/rsync.exe</color> sous <color #00a2e8>C:\Program Files\Git\usr\bin</color>
 +  * Copier le fichier <color #00a2e8>usr/bin/msys-xxhash-0</color>
 +
 +----
 +
 +===== Configuration sur le PC =====
 +
 +==== Personnalisation prompt ====
 +
 +Modification de la variable PS1 dans le fichier <color #00a2e8>C:\Program Files\Git\etc\profile.d\git-prompt.sh</color> 
 +
 +==== Personnalisation vi ====
 +
 +Créer le fichier <color #00a2e8>~/.vimrc</color> ou bien directement dans le fichier <color #00a2e8>C:\Program Files\Git\etc\vimrc</color> pour indiquer les options.
 +
 +==== Clef SSH ====
 +
 +  * Lancer une console GitBash
 +  * Générer une clef SSH
 +
 +<code bash>
 +ssh-keygen -t rsa -b 4096 -C "adresse-mail@altran.com"
 +</code>
 +
 +==== Paramètres Git ====
 +
 +=== Définition des paramètres ===
 +
 +<code bash>
 +git config --global user.name "NOM prenom"
 +git config --global user.email prenom.nom@truc.fr
 +</code>
 +
 +=== Format dos/unix ===
 +
 +Pour ne pas changer le format LF en CR/LF lors du commit à partir d'une console Git/Bash
 +
 +<code bash>
 +git config --global core.autocrlf false 
 +</code>
 +
 +=== Vérification des paramètres ===
 +
 +<code bash>
 +git config --global -l
 +</code>
 +
 +<note tip>Les paramètres sont stockés dans le fichier <color #00a2e8>C:\Users\<login>\.gitconfig</color> ou <color #00a2e8>~/.gitconfig</color> sous Linux</note>
 +
 +==== Configuration difftool/mergetool ====
 +
 +Il est possible d'utiliser un outil graphique pour faire la différence entre 2 fichiers. Outils possibles : opendiff kdiff3 tkdiff xxdiff meld kompare gvimdiff diffuse diffmerge ecmerge p4merge araxis bc codecompare smerge emerge vimdiff nvimdiff
 +
 +=== vimdiff ===
 +
 +<code bash>
 +git config --global diff.tool vimdiff
 +git config --global difftool.prompt false   # pour éviter un prompt à chaque fois
 +</code>
 +
 +=== kdiff3 ===
 +
 +<code bash>
 +git config --global --add diff.guitool kdiff3
 +git config --global --add difftool.kdiff3.path "C:/Program Files/KDiff3/kdiff3.exe"
 +git config --global --add difftool.kdiff3.trustExitCode false
 +git config --global difftool.prompt false
 +
 +git config --global --add merge.guitool kdiff3
 +git config --global --add mergetool.kdiff3.path "C:/Program Files/KDiff3/kdiff3.exe"
 +git config --global --add mergetool.kdiff3.trustExitCode false
 +git config --global mergetool.prompt false
 +</code>
 +
 +=== examdiff ===
 +
 +<code bash>
 +git config --global diff.tool=examdiff
 +git config --global difftool.examdiff.cmd="C:/Program Files (x86)/Launcher/Examdiff/examdiff.exe" "$LOCAL" "$REMOTE"
 +git config --global difftool.prompt=false
 +</code>
 +
 +<note important>Avec examdiff, une fois la commande git difftool lancée, lancer à nouveau Examdiff à partir de Windows pour comparer les 2 fichiers mémorisés dans l'historique. Une fois terminé il faudra faire un ps -ef puis kill du process examdiff à partir d'un autre git bash</note>
 +
 +----
 +
 +===== Configuration sur le serveur Git =====
 +
 +==== Ajout de la clef ssh ====
 +
 +  * Se connecter sur le serveur Git
 +  * Cliquer en haut à droite sur la roue pour accéder au menu « Edit Profile ».
 +  * Choisir dans le menu à gauche « SSH Keys ».
 +  * Copier/coller la clef à partir du fichier <color #00a2e8>C:\Users\''login''\.ssh\id_rsa.pub</color>
 +  * Attention pas de retour à la ligne
 +  * Le champ Title doit se remplir automatiquement
 +  * Cliquer sur le bouton <key>Add Key</key>
 +
 +----
 +
 +===== Raccourcis =====
 +
 +Il est possible de créer des raccourcis sur le bureau pour exécuter directement des commandes ou scripts linux. Pour cela :
 +
 +  * Créer un raccourci sur le bureau vers le programme <color #00a2e8>C:\Program Files\Git\usr\bin\mintty.exe</color>
 +  * Modifier la cible de la façon suivante :
 +
 +  "C:\Program Files\Git\usr\bin\mintty.exe" --exec "/usr/bin/bash" --login -i -c "echo 'Hello World!'; read"
 +
 +[[https://superuser.com/questions/1104567/how-can-i-find-out-the-command-line-options-for-git-bash-exe|Source]]
 +
 +----
 +
 +===== API Gitlab =====
 +
 +==== Génération token ====
 +
 +  * Cliquer sur l'icône de son utilisateur 
 +  * Choisir « Edit Profile »
 +  * Cliquer sur « Access token » dans le menu de gauche
 +  * Cliquer sur le bouton « Add new token »
 +  * Donner un nom au token puis choisir une date de validité pour le token
 +  * cocher « read_api » et « read_repository »
 +  * Cliquer sur le bouton « Create personnal access token »
 +
 +<note important>Bien noter immédiatement le token qui ne pourra plus être visualisé ensuite.</note>
 +
 +==== Utilisation en lecture ====
 +
 +=== Interrogation de la liste des projets ===
 +
 +<code bash>
 +curl --header "PRIVATE-TOKEN: <token>" "https://<url-git>/api/v4/projects?per_page=100" > liste-projet.json
 +</code>
 +
 +=== Interrogation projet ===
 +
 +A partir de l'id projet récupéré avant :
 +
 +<code bash>
 +curl --header "PRIVATE-TOKEN: <token>" "https://<url-git>/api/v4/projects/<id project>" > projet.json
 +</code>
 +
 +=== Liste des commits du projets ===
 +
 +<code bash>
 +curl --header "PRIVATE-TOKEN: <token>" "https://<url-git>/api/v4/projects/<id project>/repository/commits" > liste_commits.json
 +</code>
 +
 +==== Accès complet par token ====
 +
 +<note tip>Penser à positionner **read_repository** et **write_repository** lors de la création du token</note>
 +
 +<code bash>
 +bash
 +</code>
 +
 +=== Configurer l'url ===
 +
 +<code bash>
 +git remote set-url origin https://<username>:<token>@<url git>
 +</code>
 +
 +<note tip>Si le username est une adresse mail il faut remplacer le caractère **@** par son code **%40**</note>
 +
 +=== Vérification url ===
 +
 +<code bash>
 +git remote -v
 +</code>
 +
 +----