jupp0r był na dobrej drodze. Najpierw, cd
do katalogu głównego repozytorium. Następnie:
git commit -a -m 'Backup commit.'
git branch pre-patch
git reset --hard HEAD~
git diff --patch -w HEAD pre-patch > patch.diff
git apply patch.diff
Nie jestem pewien, czy to zadziała w przypadku zmian binarnych. Jeśli nie, możesz je wcześniej osobno zatwierdzić. Jeśli ten proces się nie powiedzie, Twój kod znajduje się w gałęzi pre-patch
.
Co to robi:
- Tworzy popełnić i oddział przechowywać pełen zmian. To również służy jako kopia zapasowa.
- Powoduje cofnięcie o krok przed tymi zmianami.
- Pobiera "diff -w" ze starego kodu do nowego kodu, sformatowanego jako łatka.
- Umożliwia zastosowanie poprawki.
Uwaga: jeśli już wprowadziłeś zmianę i chcesz ją zmodyfikować, po prostu pomiń pierwszy krok.
Może za pomocą skryptu podobnego do haka poprzedzającego zatwierdzenie, o którym wspomniałem w http://stackoverflow.com/a/592014/6309? – VonC
@VonC: Byłbym bardzo wdzięczny, gdybyś mógł zadowolić ten skrypt dla nas. –
@Abhishek masz na myśli tak jak ten? https://github.com/imoldman/config/blob/master/pre-commit.git.sh – VonC