prog:git
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| prog:git [2023/08/25 12:34] – Ajout de "État du dépôt" root | prog: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 | ||
| </ | </ | ||
| + | |||
| + | [[prive: | ||
| Si le dépôt demande constamment le mot de passe, il faut soit configurer l' | Si le dépôt demande constamment le mot de passe, il faut soit configurer l' | ||
| Ligne 102: | Ligne 104: | ||
| ====Fusionner deux dépôts en un seul==== | ====Fusionner deux dépôts en un seul==== | ||
| - | [[https://blog.rom1v.com/2017/07/fusionner-deux-depots-git/|Fusionner deux dépôts git]] {{ :prog:git:fusionner_deux_depots_git_rom1v_blog_2019-10-22_13_30_34_.html |Archive du 12/07/2017 le 22/10/2019}} | + | Depuis le projet A : |
| + | |||
| + | <code bash> | ||
| + | git remote add -f Bproject path/to/B | ||
| + | git merge -s ours --no-commit --allow-unrelated-histories Bproject/ | ||
| + | rm -Rf path/to/B | ||
| + | git read-tree --prefix=path/ | ||
| + | git commit -m "Merge B project as our subdirectory" | ||
| + | </ | ||
| + | |||
| + | Supprimer le submodule des fichiers '' | ||
| + | |||
| + | <code bash> | ||
| + | git add .gitmodules | ||
| + | git commit -m " | ||
| + | </ | ||
| + | |||
| + | [[https://stackoverflow.com/questions/23327701/git-merge-submodule-into-parent-tree-cleanly-and-preserving-commit-history|Git merge submodule into parent tree cleanly and preserving commit history]] {{ :prog:git:git_merge_submodule_into_parent_tree_cleanly_and_preserving_commit_history_-_stack_overflow_22_09_2023_12_24_09_.html |Archive du 27/04/2014 le 22/09/2023}} | ||
| + | |||
| + | Ou | ||
| <code bash> | <code bash> | ||
| Ligne 120: | Ligne 141: | ||
| git update-ref -d refs/ | git update-ref -d refs/ | ||
| </ | </ | ||
| + | |||
| + | [[https:// | ||
| + | |||
| ====Dupliquer un dépôt==== | ====Dupliquer un dépôt==== | ||
| Ligne 416: | Ligne 440: | ||
| <code bash> | <code bash> | ||
| - | if [ -n " | + | if [[ ! -z " |
| then | then | ||
| echo "Some files has been modified." | echo "Some files has been modified." | ||
| Ligne 422: | Ligne 446: | ||
| fi; | fi; | ||
| </ | </ | ||
| + | |||
| + | Pour utiliser '' | ||
| * Si des fichiers non ignorés ont été ajoutés | * Si des fichiers non ignorés ont été ajoutés | ||
| Ligne 444: | Ligne 470: | ||
| Checking objects: 100% (812/812), done. | Checking objects: 100% (812/812), done. | ||
| missing tree 2a9e451f85ba5e26dbe34d742105e877b0942570 | missing tree 2a9e451f85ba5e26dbe34d742105e877b0942570 | ||
| + | </ | ||
| + | |||
| + | ====Savoir à quel commit appartient un blob==== | ||
| + | |||
| + | <code bash> | ||
| + | git log --raw --all --find-object=< | ||
| + | </ | ||
| + | |||
| + | et pour un objet LFS | ||
| + | |||
| + | <code bash> | ||
| + | git log -S< | ||
| + | </ | ||
| + | |||
| + | ====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 | ||
| </ | </ | ||
| ====Suppression des dangling blobs==== | ====Suppression des dangling blobs==== | ||
| Ligne 503: | Ligne 560: | ||
| </ | </ | ||
| - | Choisir une clé '' | + | Choisir une clé '' |
| ====Afficher la clé publique et privée==== | ====Afficher la clé publique et privée==== | ||
| Ligne 605: | Ligne 662: | ||
| [[https:// | [[https:// | ||
| + | ====fatal: unable to access ' | ||
| + | |||
| + | L' | ||
| + | |||
| + | ====error: object file .git/ | ||
| + | |||
| + | Pour éviter de devoir tout cloner à nouveau et devoir tout recompiler, il faut tester : | ||
| + | |||
| + | <code bash> | ||
| + | find .git/ | ||
| + | git fetch | ||
| + | </ | ||
| + | |||
| + | [[https:// | ||
| + | |||
| + | ====gpg: keydb_search failed: Invalid argument==== | ||
| + | |||
| + | < | ||
| + | gpg: keydb_search failed: Invalid argument | ||
| + | gpg: skipped " | ||
| + | [GNUPG:] INV_SGNR 0 XXXXXXXXXXXXXXXX | ||
| + | [GNUPG:] FAILURE sign XXXXXXXXX | ||
| + | gpg: signing failed: Invalid argument | ||
| + | </ | ||
| + | |||
| + | Supprimer le dossier '' | ||
| =====Windows===== | =====Windows===== | ||
| [[https:// | [[https:// | ||
prog/git.1692959693.txt.gz · Dernière modification : de root
