====== 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 /c/Users//.bashrc : alias tree='cmd //c tree //a //f' === 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 C:\Program Files\Git\usr\bin ==== zip ==== * Télécharger le fichier zip-3.0-bin.zip sur le site [[https://sourceforge.net/projects/gnuwin32/files/zip/3.0]] * Copier le fichier bin/zip.exe dans le répertoire C:\Program Files\Git\mingw64\bin * Télécharger le fichier bzip2-1.0.5-bin.zip sur le site [[https://sourceforge.net/projects/gnuwin32/files/bzip2/1.0.5]] * Copier le fichier bin/bzip2.dll dans le répertoire C:\Program Files\Git\mingw64\bin * 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 Utiliser zstd en suivant ce tuto https://shchae7.medium.com/how-to-use-rsync-on-git-bash-6c6bba6a03ca 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 * Copier le fichier usr/bin/rsync.exe sous C:\Program Files\Git\usr\bin * Copier le fichier usr/bin/msys-xxhash-0 ---- ===== Configuration sur le PC ===== ==== Personnalisation prompt ==== Modification de la variable PS1 dans le fichier C:\Program Files\Git\etc\profile.d\git-prompt.sh ==== Personnalisation vi ==== Créer le fichier ~/.vimrc ou bien directement dans le fichier C:\Program Files\Git\etc\vimrc pour indiquer les options. ==== Clef SSH ==== * Lancer une console GitBash * Générer une clef SSH ssh-keygen -t rsa -b 4096 -C "adresse-mail@altran.com" ==== Paramètres Git ==== === Définition des paramètres === git config --global user.name "NOM prenom" git config --global user.email prenom.nom@truc.fr === Format dos/unix === Pour ne pas changer le format LF en CR/LF lors du commit à partir d'une console Git/Bash git config --global core.autocrlf false === Vérification des paramètres === git config --global -l Les paramètres sont stockés dans le fichier C:\Users\\.gitconfig ou ~/.gitconfig sous Linux ==== 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 === git config --global diff.tool vimdiff git config --global difftool.prompt false # pour éviter un prompt à chaque fois === kdiff3 === 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 === examdiff === 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 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 ---- ===== 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 C:\Users\''login''\.ssh\id_rsa.pub * Attention pas de retour à la ligne * Le champ Title doit se remplir automatiquement * Cliquer sur le bouton Add 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 C:\Program Files\Git\usr\bin\mintty.exe * 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 » Bien noter immédiatement le token qui ne pourra plus être visualisé ensuite. ==== Utilisation en lecture ==== === Interrogation de la liste des projets === curl --header "PRIVATE-TOKEN: " "https:///api/v4/projects?per_page=100" > liste-projet.json === Interrogation projet === A partir de l'id projet récupéré avant : curl --header "PRIVATE-TOKEN: " "https:///api/v4/projects/" > projet.json === Liste des commits du projets === curl --header "PRIVATE-TOKEN: " "https:///api/v4/projects//repository/commits" > liste_commits.json ==== Accès complet par token ==== Penser à positionner **read_repository** et **write_repository** lors de la création du token bash === Configurer l'url === git remote set-url origin https://:@ Si le username est une adresse mail il faut remplacer le caractère **@** par son code **%40** === Vérification url === git remote -v ----