/ / Git: Zabránenie záväzku počas rebase - git, bash, macos, rebase

Git: Prevencia záväzku počas rebase - git, bash, macos, rebase

Viem, ako ľahko "opraviť" tento stav, keď som náhodou urobil a git commit --amend počas interaktívnej rebáze. Ale zaujímalo by ma, či niekto má riešenie, akejkoľvek úrovne zložitosti, ktorá by mi dovolila konfigurovať git / terminal / bash, aby ma PREVEDENILA, aby som to nemohla urobiť.

Iba používam terminál Mac OS X. Ak by ich riešenie vyžadovalo, bol by som otvorený iným terminálovým programom.

1 @: master$ git pull
2 @: master$ git checkout my/feature/branch
3 @: my/feature/branch$ git rebase -i master
// There are merge conflicts
// I fix them, then
4 @: my/feature/branch$ git add .
// Then what I should do is:
5correct @: my/feature/branch$ git rebase --continue
// But instead, just due to dumb muscle memory, I do:
5incorrect @: my/feature/branch$ git commit --amend

Môžem ľahko opraviť zlomený výsledný stav. Len sa snažím zistiť, či existuje spôsob, akým môžem nakonfigurovať niečo, aby ma PREVENILI od toho, aby som dokázal vykonať 5 nesprávny príkaz, ak som uprostred rebase.

odpovede:

2 pre odpoveď č. 1

Môžete pridať nasledujúci lokálny predbežný háčik ako .git/hooks/pre-commit:

#!/bin/bash
set -e
shopt -s extglob

if [[ -d `git rev-parse --git-path rebase-merge` 
|| -d `git rev-parse --git-path rebase-apply` ]]; then
read -p "Rebase in progress, continue? "
[[ ${REPLY,,} == @(y|yes) ]]
fi

Potom len chmod +x .git/hooks/pre-commit a budete zoradení.Ak prebieha rebase, budete vyzvaní, aby ste pokračovali alebo inak stlačili klávesovú skratku ctrl-c alebo len zadajte alebo čo je pre vás skromnejšie a skript / commit sa zastaví.