Je suis maître et je l'ai fait rebase -i <my_branch>
Je l'ai:
noop
# Rebase c947bec..7e259d3 onto c947bec
#
# Commands:
# p, pick = use commit
# r, reword = use commit, but edit the commit message
# e, edit = use commit, but stop for amending
# s, squash = use commit, but meld into previous commit
# f, fixup = like "squash", but discard this commit's log message
# x <cmd>, exec <cmd> = Run a shell command <cmd>, and stop if it fails
#
# If you remove a line here THAT COMMIT WILL BE LOST.
# However, if you remove everything, the rebase will be aborted.
#
Je voudrais choisir certains engagements pas tous car certains d'entre eux ne sont pas les bienvenus. Aussi comment travaillez-vous lorsque vous souhaitez conserver certains fichiers ou des modifications toujours «locales» dans une branche? Y a-t-il une aide comme .gitignore
?
HEAD~*
syntaxe a fonctionné pour moi, mais la première n'a pas fonctionné.rebase -i
sans une plage de validation n'affichera aucun commit. pour rebaser les 7 derniers commits, disons, utilisez ce qui suit:attention cependant, cela réécrira l'histoire. ne le faites pas, si les commits sont déjà poussés
pour votre deuxième question: ayez une branche avec vos modifications (essentiellement une branche de configuration) et fusionnez régulièrement les autres branches en elle. de cette façon, les modifications ne seront pas déplacées vers d'autres branches
la source
Lorsque vous utilisez
git rebase -i
, vous devez généralement spécifier, depuis quel commit voulez-vous effectuer le rebase. Donc, si, par exemple, vous souhaitez supprimer certains des commits parmi les 10 derniers de la branche actuelle, vous feriez:la source
Comme d'autres l'ont mentionné, vous devez spécifier une plage de validation.
(En supposant que vous soyez sur la même branche que le commit à éditer) -
Pour spécifier les commits, vous pouvez utiliser les raccourcis HEAD ~ 5 ou utiliser la somme de contrôle sha (que vous pouvez utiliser
git log
)En fait, n'importe quel commit fera l'affaire s'il est antérieur / ancêtre des commits que vous voulez supprimer / éditer / reformuler dans l'arborescence. Cela listera tous les commits depuis le
<latest-commit-to-be-retained>
dans l'éditeur (défini dans votre git config). Dans la liste, pour supprimer un commit, supprimez simplement cette ligne particulière, enregistrez et quittez (vi habbits :)) le fichier + éditeur, et faitesgit rebase --continue
Pour la deuxième réponse, je suis d'accord avec knittl
la source