Outils pour utilisateurs

Outils du site


prog:git

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
prog:git [2024/01/19 16:06] – [bash] : remplacement de "git diff-index --name-only HEAD --" par "git update-index --refresh" rootprog:git [2025/10/20 15:34] (Version actuelle) – [Génération de la clé] : utilisation de sign only root
Ligne 20: Ligne 20:
 git config --global lfs.locksverify true git config --global lfs.locksverify true
 </code> </code>
 +
 +[[prive:prog:git|Données privées]]
  
 Si le dépôt demande constamment le mot de passe, il faut soit configurer l'utilisation de clés privées / publiques SSH et utiliser le protocole ''git@'', soit stocker les mots de passe (en clair sur le disque) et utiliser ''https:%%//%%'' : Si le dépôt demande constamment le mot de passe, il faut soit configurer l'utilisation de clés privées / publiques SSH et utiliser le protocole ''git@'', soit stocker les mots de passe (en clair sur le disque) et utiliser ''https:%%//%%'' :
Ligne 445: Ligne 447:
 </code> </code>
  
-Pour utiliser ''git diff-index --name-only HEAD --'', il est nécessaire d'appeler ''git update-index --refresh''. [[https://stackoverflow.com/questions/34807971/why-does-git-diff-index-head-result-change-for-touched-files-after-git-diff-or-g|Why does git diff-index HEAD result change for touched files after git diff or git status?]] {{ :prog:git:why_does_git_diff-index_head_result_change_for_touched_files_after_git_diff_or_git_status_-_stack_overflow_1_19_2024_4_04_53_pm_.html |Archive du 15/01/2016 le 19/01/2024}}+Pour utiliser ''%%git diff-index --name-only HEAD --%%'', il est nécessaire d'appeler ''%%git update-index --refresh%%''. [[https://stackoverflow.com/questions/34807971/why-does-git-diff-index-head-result-change-for-touched-files-after-git-diff-or-g|Why does git diff-index HEAD result change for touched files after git diff or git status?]] {{ :prog:git:why_does_git_diff-index_head_result_change_for_touched_files_after_git_diff_or_git_status_-_stack_overflow_1_19_2024_4_04_53_pm_.html |Archive du 15/01/2016 le 19/01/2024}}
  
   * Si des fichiers non ignorés ont été ajoutés   * Si des fichiers non ignorés ont été ajoutés
Ligne 468: Ligne 470:
 Checking objects: 100% (812/812), done. Checking objects: 100% (812/812), done.
 missing tree 2a9e451f85ba5e26dbe34d742105e877b0942570 missing tree 2a9e451f85ba5e26dbe34d742105e877b0942570
 +</code>
 +
 +====Savoir à quel commit appartient un blob====
 +
 +<code bash>
 +git log --raw --all --find-object=<blob hash>
 +</code>
 +
 +et pour un objet LFS
 +
 +<code bash>
 +git log -S<SHA>
 +</code>
 +
 +====Avoir tous les enfants d'un commit====
 +
 +<code bash>
 +find_descendants() {
 +    local sha=$1
 +    line=$(git rev-list --all --children | grep ^$sha)
 +
 +    if [[ $line == *" "* ]]; then
 +        children=$(echo $line | cut -d' ' -f2-)
 +        for child in $children; do
 +            echo $child
 +            find_descendants $child
 +        done
 +    fi
 +}
 +
 +find_descendants $1
 </code> </code>
 ====Suppression des dangling blobs==== ====Suppression des dangling blobs====
Ligne 527: Ligne 560:
 </code> </code>
  
-Choisir une clé ''RSA et RSA'' de la taille maximale (4096).+Choisir une clé ''RSA (sign only)'' de la taille maximale (4096). ''RSA'' signe plus rapidement que ''DSA'' (qui vérifie plus rapidement). Dans mon cas, ce qui m'intéresse, c'est que les commits soient signés rapidement sur ma machine.
  
 ====Afficher la clé publique et privée==== ====Afficher la clé publique et privée====
Ligne 629: Ligne 662:
 [[https://stackoverflow.com/questions/23885449/unable-to-resolve-unable-to-get-local-issuer-certificate-using-git-on-windows|Unable to resolve "unable to get local issuer certificate" using git on Windows with self-signed certificate]] {{ :prog:git:unable_to_resolve_unable_to_get_local_issuer_certificate_using_git_on_windows_with_self-signed_certificate_-_stack_overflow_27_02_2023_16_06_21_.html |Archive du 27/05/2015 le 27/02/2023}} [[https://stackoverflow.com/questions/23885449/unable-to-resolve-unable-to-get-local-issuer-certificate-using-git-on-windows|Unable to resolve "unable to get local issuer certificate" using git on Windows with self-signed certificate]] {{ :prog:git:unable_to_resolve_unable_to_get_local_issuer_certificate_using_git_on_windows_with_self-signed_certificate_-_stack_overflow_27_02_2023_16_06_21_.html |Archive du 27/05/2015 le 27/02/2023}}
  
 +====fatal: unable to access 'xxxxx.git/': error setting certificate file: xxxx\CI_SERVER_TLS_CA_FILE====
 +
 +L'option ''credential.helper'' est configuré à ''store'' et le mot de passe défini dans le fichier ''.git-credentials'' est faux.
 +
 +====error: object file .git/objects/a3/02c397c3b0c0c8959b35778c1705a89108fdb2 is empty====
 +
 +Pour éviter de devoir tout cloner à nouveau et devoir tout recompiler, il faut tester :
 +
 +<code bash>
 +find .git/objects/ -size 0 -delete
 +git fetch
 +</code>
 +
 +[[https://stackoverflow.com/questions/4111728/how-do-i-deal-with-corrupted-git-object-files|How do I deal with corrupted Git object files?]] {{ :prog:git:how_do_i_deal_with_corrupted_git_object_files_-_stack_overflow_28_12_2024_22_04_15_.html |Archive du 06/11/2010 le 28/12/2024}}
 +
 +====gpg: keydb_search failed: Invalid argument====
 +
 +<code>
 +gpg: keydb_search failed: Invalid argument
 +gpg: skipped "XXXXXXXXXXXXXXXX": Invalid argument
 +[GNUPG:] INV_SGNR 0 XXXXXXXXXXXXXXXX
 +[GNUPG:] FAILURE sign XXXXXXXXX
 +gpg: signing failed: Invalid argument
 +</code>
 +
 +Supprimer le dossier ''~/.gnupg'' et réimporter les clés privées.
 =====Windows===== =====Windows=====
 [[https://gitforwindows.org|Site Web]], {{ :prog:git:git-2.21.0-64-bit.exe |Archive git gui 64 bit 2.21.0 (26/02/2019)}} [[https://gitforwindows.org|Site Web]], {{ :prog:git:git-2.21.0-64-bit.exe |Archive git gui 64 bit 2.21.0 (26/02/2019)}}
prog/git.1705676769.txt.gz · Dernière modification : de root