.gitignore
et supprimer les anciens fichiersgit fetch --all ; git reset --hard origin/main ; git checkout -- .
git reset --hard HEAD^
git push --force
git config --global user.name "<nom>"
git config --global user.email "<email>"
git config --global credential.helper store
git config --global credential.helper 'cache --timeout=3600'
git log
git checkout <sha1 du commit>
Par exemple pour faire un fork public d’un dépot privé
Source : GitHub: How to make a fork of public repository private?
Begin import
Une solution en ligne de commande est possible et est donnée dans la source.
.gitignore
et supprimer les anciens fichiersSource : How do I make Git forget about a file that was tracked, but is now in .gitignore?
Trouver de bons .gitignore : github.com/github/gitignore
Une fois le .gitignore
créé, avant de push
utilisez cette commande : cela supprimera les fichiers maintenant ignorés sur le serveur Git
git rm -r --cached .
git add .
Et enfin
git commit -am "Suppression des fichiers ignorés"
Source : [How to Change a Git Commit Message | Linuxize](https://linuxize.com/post/change-git-commit-message/) |
git rebase -i HEAD~<nombre de commits a remonter>
Il doit être affiché un éditeur de texte avec les commits à modifier. Il faut remplacer pick
par reword
pour le commit à modifier.
Exemple :
pick <sha du commit> mon commit à modifier
Changement de pick
en reword
:
reword <sha du commit> mon commit à modifier
Pour chaque commit noté reword
, il faut modifier le message de commit, puis sauvegarder et quitter l’éditeur de texte.
Enfin, il faut forcer le commit :
git push --force
Erreur que j’ai eu :
error: RPC failed; curl ...
error: ... bytes of body are still expected
fetch-pack: unexpected disconnect while reading sideband packet
fatal: early EOF
fatal: fetch-pack: invalid index-pack output
Solution :
git clone http://github.com/large-repository --depth 1
cd large-repository
git fetch --unshallow
Sources :
Dans le dossier git du dépôt parent, lancer la commande :
git submodule add <url>
Cette commande va créer un nouveau dossier avec le nom du dépôt
ou
git submodule add <url> <nom du dossier>
git clone --recurse-submodules <url>
git push --recurse-submodules=on-demand
git pull --recurse-submodules
Si vous utilisez l’application GitHub Desktop, n’oubliez pas de push les submodules puis de push le dépôt parent.