Nowy commit, po którym working-tree wraca do konkretnego stanu

0

Dzień Dobry!

Potrzebuje nieco pomocy z Gitem.

Otóż załóżmy że mamy gałąź master i feature-tablica i teraz chciał bym by zrobić commit w feature-tabica który przywróci stan katalogów z commita 2a30ef5 nie ważne gdzie on jest.

Jak to osiągam teraz?

git checkout 2a30ef5

kopia wszystkiego (oprócz .git) do folderu tmp

git checkout feature-tablica

usunięcie wszystkich plików
dodanie wszystkich plików z folderu tmp

git commit

Jest jakieś polecenie które prosto wykona mi coś takiego? Revert odwaca commit i to tylko na tej samej gałęzi a mi chodzi o cofnięcie dużej liczby commitów w jednym (Efekt jak po wykonaniu operacji powyżej)

0

git reflog a potem git reset --hard <commit_id_z_refloga>

0

Wtedy commit dodaje się do tamtego miejsca A ja chciałem by dodał się do góry mastera
screenshot-20181031144449.png

0

Nie do końca rozumiem co Ty chcesz osiągnąć.

reset --hard cofnie Ci historię i working tree do danego momentu w przeszłości (commit id) i wówczas git log będzie wskazywał, jakbyś się "zatrzymał" w tym właśnie momencie tego danego id. Jak mimo tej operacji chcesz jakiś specyficzny commit mieć na górze brancha, to zrób po tym dodatkowy commit. Amend jest bez sensu wtedy, bo zwyczajnie można cofnąć refloga krok wstecz i dodać zwykły commit.

// Edit: bym zapomniał: ta sztuczka oczywiście na Twoim lokalnym repo, nigdy akcji z --amend i git reset nie pushuj do remote mastera, jeśli są używane przez innych (i nie tylko do mastera)

0

screenshot-20181031145852.png

Chcę dodać nowy commit do swojego feature brancha który cofnie zmiany z master (moim zadaniem jest cofnąć zmiany z master i coś tam poprawić) ale branch ma wyjść ze stabilnej teraz wersji a nie z poprzedniej (jak wyżej)

1 użytkowników online, w tym zalogowanych: 0, gości: 1