[OT] git przywracanie commita
Koledzy podpowiedzcie. chcę sobie przywrócić na innej gałęzi lms z początku kwietnia, ale jakoś mi to nie wychodzi.
jestem na moim branchu, chcę go sklonować i na tym testowym przywrócić z poprzedniego commita. jak to zrobić?
ps. do Tomka - twój serwer poczty blokuje maile z gmaila?
W dniu 26.04.2013 15:27, Marcin napisał(a):
Koledzy podpowiedzcie. chcę sobie przywrócić na innej gałęzi lms z początku kwietnia, ale jakoś mi to nie wychodzi.
jestem na moim branchu, chcę go sklonować i na tym testowym przywrócić z poprzedniego commita. jak to zrobić?
Cofnąć jeden commit czy cofnąć się wiele commitów wstecz do wybranego? Jeśli commitów nie wiele to można cofnąć wszystkie jawnie określając.
ps. do Tomka - twój serwer poczty blokuje maile z gmaila?
Bardzo możliwe, jeśli figuruje od czasu do czasu na RBL-ach.
-- Pozdrawiam Marcin / nicraM
W dniu 26 kwietnia 2013 16:05 użytkownik Tomasz Chiliński < tomasz.chilinski@chilan.com> napisał:
Cofnąć jeden commit czy cofnąć się wiele commitów wstecz do wybranego? Jeśli commitów nie wiele to można cofnąć wszystkie jawnie określając.
cofnąć wiele commitów do wybranego
ps. do Tomka - twój serwer poczty blokuje maile z gmaila?
Bardzo możliwe, jeśli figuruje od czasu do czasu na RBL-ach.
ale google
W dniu 26.04.2013 16:07, Marcin napisał(a):
W dniu 26 kwietnia 2013 16:05 użytkownik Tomasz Chiliński tomasz.chilinski@chilan.com napisał:
Cofnąć jeden commit czy cofnąć się wiele commitów wstecz do wybranego? Jeśli commitów nie wiele to można cofnąć wszystkie jawnie określając.
cofnąć wiele commitów do wybranego
http://stackoverflow.com/questions/1463340/revert-multiple-git-commits Zwłaszcza polecam odpowiedź ze 168 pozytywnymi komentarzami.
ps. do Tomka - twój serwer poczty blokuje maile z gmaila?
Bardzo możliwe, jeśli figuruje od czasu do czasu na RBL-ach.
ale google
-- Pozdrawiam Marcin / nicraM
W dniu 26 kwietnia 2013 16:25 użytkownik Tomasz Chiliński < tomasz.chilinski@chilan.com> napisał:
W dniu 26.04.2013 16:07, Marcin napisał(a):
http://stackoverflow.com/**questions/1463340/revert-**multiple-git-commitshttp://stackoverflow.com/questions/1463340/revert-multiple-git-commits Zwłaszcza polecam odpowiedź ze 168 pozytywnymi komentarzami.
hmm, jak robię reset --hard SHA to jak najbardziej przywraca mi, z tym że nie z mojego brancha tylko z mastera :/
W dniu 26.04.2013 16:34, Marcin napisał(a):
W dniu 26 kwietnia 2013 16:25 użytkownik Tomasz Chiliński tomasz.chilinski@chilan.com napisał:
W dniu 26.04.2013 16 [1]:07, Marcin napisał(a):
http://stackoverflow.com/questions/1463340/revert-multiple-git-commits [2] Zwłaszcza polecam odpowiedź ze 168 pozytywnymi komentarzami.
hmm, jak robię reset --hard SHA to jak najbardziej przywraca mi, z tym że nie z mojego brancha tylko z mastera :/
Z man git-reset: git reset [<mode>] [<commit>] This form resets the current branch head to <commit> and possibly updates the index (resetting it to the tree of <commit>) and the working tree depending on <mode>. If <mode> is omitted, defaults to "--mixed". The <mode> must be one of the following:
--soft Does not touch the index file nor the working tree at all (but resets the head to <commit>, just like all modes do). This leaves all your changed files "Changes to be committed", as git status would put it.
--mixed Resets the index but not the working tree (i.e., the changed files are preserved but not marked for commit) and reports what has not been updated. This is the default action.
--hard Resets the index and working tree. Any changes to tracked files in the working tree since <commit> are discarded.
--merge Resets the index and updates the files in the working tree that are different between <commit> and HEAD, but keeps those which are different between the index and working tree (i.e. which have changes which have not been added). If a file that is different between <commit> and the index has unstaged changes, reset is aborted.
In other words, --merge does something like a git read-tree -u -m <commit>, but carries forward unmerged index entries.
--keep Resets index entries and updates files in the working tree that are different between <commit> and HEAD. If a file that is different between <commit> and HEAD has local changes, reset is aborted.
Jaką masz aktywną gałąź, gdy robisz git reset?
-- Pozdrawiam Marcin / nicraM
2013/4/26 Tomasz Chiliński tomasz.chilinski@chilan.com
Jaką masz aktywną gałąź, gdy robisz git reset?
mam tak. gałąź master - klon lmsa mam swoją gałąź nicraM i mam taki poligon doświadczalny - poligon
git checkout nicraM -jestem w swojej gałęzi
git checkout -b poligon - jestem w nowej gałęzi poligon, kopii nicraM
robię teraz reset: git reset --hard SHA
przywraca mi się HEAD ale mam z brancha master, nie jest to z mojego nicraM :/
już połowę dnia z tym walczę. zgodnie z dokumentacją powinien być przywrócony commit z bieżącego brancha a dzieje sie inaczej :/
W dniu 26.04.2013 16:44, Marcin napisał(a):
2013/4/26 Tomasz Chiliński tomasz.chilinski@chilan.com
Jaką masz aktywną gałąź, gdy robisz git reset?
mam tak.
gałąź master - klon lmsa
mam swoją gałąź nicraM
i mam taki poligon doświadczalny - poligon
git checkout nicraM
-jestem w swojej gałęzi
git checkout -b poligon
- jestem w nowej gałęzi poligon, kopii nicraM
robię teraz reset:
git reset --hard SHA
przywraca mi się HEAD ale mam z brancha master, nie jest to z mojego nicraM :/
Co dokładnie w tym momencie pokazuje: git branch ?
już połowę dnia z tym walczę. zgodnie z dokumentacją powinien być przywrócony commit z bieżącego brancha a dzieje sie inaczej :/
-- Pozdrawiam Marcin / nicraM
W dniu 26 kwietnia 2013 16:53 użytkownik Tomasz Chiliński < tomasz.chilinski@chilan.com> napisał:
Co dokładnie w tym momencie pokazuje: git branch
to może po kolei: #v+ marcin@testsql:~$ cd elemes/lms/ marcin@testsql:~/elemes/lms$ git branch -l master * nicraM marcin@testsql:~/elemes/lms$ git status # On branch nicraM nothing to commit (working directory clean) marcin@testsql:~/elemes/lms$ git checkout -b poligon Switched to a new branch 'poligon' marcin@testsql:~/elemes/lms$ git branch -l master nicraM * poligon marcin@testsql:~/elemes/lms$ git reset --hard c2e07bb92a9e026507495f783f27ef2a2759ff6b HEAD is now at c2e07bb typo marcin@testsql:~/elemes/lms$ git branch -l master nicraM * poligon marcin@testsql:~/elemes/lms$ git status # On branch poligon nothing to commit (working directory clean) #v-
no i teoretycznie powinno być z brachu nicraM a niestety jest z master :/ zapewne robię gdzieś coś źle, tylko gdzie?
W dniu 26.04.2013 17:09, Marcin napisał(a):
W dniu 26 kwietnia 2013 16:53 użytkownik Tomasz Chiliński tomasz.chilinski@chilan.com napisał:
Co dokładnie w tym momencie pokazuje: git branch
to może po kolei:
#v+ marcin@testsql:~$ cd elemes/lms/ marcin@testsql:~/elemes/lms$ git branch -l master
- nicraM
marcin@testsql:~/elemes/lms$ git status # On branch nicraM nothing to commit (working directory clean) marcin@testsql:~/elemes/lms$ git checkout -b poligon Switched to a new branch 'poligon' marcin@testsql:~/elemes/lms$ git branch -l master nicraM
- poligon
marcin@testsql:~/elemes/lms$ git reset --hard c2e07bb92a9e026507495f783f27ef2a2759ff6b HEAD is now at c2e07bb typo marcin@testsql:~/elemes/lms$ git branch -l master nicraM
- poligon
marcin@testsql:~/elemes/lms$ git status # On branch poligon nothing to commit (working directory clean)
#v-
no i teoretycznie powinno być z brachu nicraM a niestety jest z master :/
zapewne robię gdzieś coś źle, tylko gdzie?
Wygląda na to, że jest to zamierzone. Z przykładu man: Undo a commit, making it a topic branch
$ git branch topic/wip (1) $ git reset --hard HEAD~3 (2) $ git checkout topic/wip (3)
1. You have made some commits, but realize they were premature to be in the "master" branch. You want to continue polishing them in a topic branch, so create "topic/wip" branch off of the current HEAD. 2. Rewind the master branch to get rid of those three commits. 3. Switch to "topic/wip" branch and keep working.
więc reset cofa commity zawsze na gałęzi master, a to pozwala wydzielić pewne commity z gałęzi master do dowolnej innej gałęzi. Możesz spróbować zrobić drugiego clone-a z HEAD-em w masterem ustawionym od razu na ten pożądany commit, a lokalne zmiany z gałęzi poligon czy nicraM przenieść jako patch do tego nowego clone-a.
-- Pozdrawiam Marcin / nicraM
W dniu 26 kwietnia 2013 17:28 użytkownik Tomasz Chiliński < tomasz.chilinski@chilan.com> napisał:
więc reset cofa commity zawsze na gałęzi master, a to pozwala wydzielić pewne commity z gałęzi master do dowolnej innej gałęzi. Możesz spróbować zrobić drugiego clone-a z HEAD-em w masterem ustawionym od razu na ten pożądany commit, a lokalne zmiany z gałęzi poligon czy nicraM przenieść jako patch do tego nowego clone-a.
tego nie doczytałem :/ wszystko już jasne. dzięki
W dniu 26.04.2013 17:28, Tomasz Chiliński napisał(a):
W dniu 26.04.2013 17:09, Marcin napisał(a): W dniu 26 kwietnia 2013 16:53 użytkownik Tomasz Chiliński tomasz.chilinski@chilan.com napisał:
Co dokładnie w tym momencie pokazuje: git branch
to może po kolei:
#v+ marcin@testsql:~$ cd elemes/lms/ marcin@testsql:~/elemes/lms$ git branch -l master
- nicraM
marcin@testsql:~/elemes/lms$ git status # On branch nicraM nothing to commit (working directory clean) marcin@testsql:~/elemes/lms$ git checkout -b poligon Switched to a new branch 'poligon' marcin@testsql:~/elemes/lms$ git branch -l master nicraM
- poligon
marcin@testsql:~/elemes/lms$ git reset --hard c2e07bb92a9e026507495f783f27ef2a2759ff6b HEAD is now at c2e07bb typo marcin@testsql:~/elemes/lms$ git branch -l master nicraM
- poligon
marcin@testsql:~/elemes/lms$ git status # On branch poligon nothing to commit (working directory clean)
#v-
no i teoretycznie powinno być z brachu nicraM a niestety jest z master :/
zapewne robię gdzieś coś źle, tylko gdzie?
Wygląda na to, że jest to zamierzone. Z przykładu man: Undo a commit, making it a topic branch
$ git branch topic/wip (1) $ git reset --hard HEAD~3 (2) $ git checkout topic/wip (3)
- You have made some commits, but realize they were premature to be
in the "master" branch. You want to continue polishing them in a topic branch, so create "topic/wip" branch off of the current HEAD. 2. Rewind the master branch to get rid of those three commits. 3. Switch to "topic/wip" branch and keep working.
więc reset cofa commity zawsze na gałęzi master, a to pozwala wydzielić pewne commity z gałęzi master do dowolnej innej gałęzi. Możesz spróbować zrobić drugiego clone-a z HEAD-em w masterem ustawionym od razu na ten pożądany commit, a lokalne zmiany z gałęzi poligon czy nicraM przenieść jako patch do tego nowego clone-a.
Jest jeszcze taka możliwość: git checkout nicraM git reset --hard origin/nicraM/<commit_id> o ile zmiany z nicraM nie push-owałeś do origin-a.
-- Pozdrawiam Marcin / nicraM
no właśnie robiłem pusha :) ok, dzięki.
W dniu 26 kwietnia 2013 17:35 użytkownik Tomasz Chiliński < tomasz.chilinski@chilan.com> napisał:
W dniu 26.04.2013 17:28, Tomasz Chiliński napisał(a):
W dniu 26.04.2013 17:09, Marcin napisał(a):
W dniu 26 kwietnia 2013 16:53 użytkownik Tomasz Chiliński tomasz.chilinski@chilan.com napisał:
Co dokładnie w tym momencie pokazuje: git branch
to może po kolei:
#v+ marcin@testsql:~$ cd elemes/lms/ marcin@testsql:~/elemes/lms$ git branch -l master
- nicraM
marcin@testsql:~/elemes/lms$ git status # On branch nicraM nothing to commit (working directory clean) marcin@testsql:~/elemes/lms$ git checkout -b poligon Switched to a new branch 'poligon' marcin@testsql:~/elemes/lms$ git branch -l master nicraM
- poligon
marcin@testsql:~/elemes/lms$ git reset --hard c2e07bb92a9e026507495f783f27ef**2a2759ff6b HEAD is now at c2e07bb typo marcin@testsql:~/elemes/lms$ git branch -l master nicraM
- poligon
marcin@testsql:~/elemes/lms$ git status # On branch poligon nothing to commit (working directory clean)
#v-
no i teoretycznie powinno być z brachu nicraM a niestety jest z master :/
zapewne robię gdzieś coś źle, tylko gdzie?
Wygląda na to, że jest to zamierzone. Z przykładu man: Undo a commit, making it a topic branch
$ git branch topic/wip (1) $ git reset --hard HEAD~3 (2) $ git checkout topic/wip (3)
- You have made some commits, but realize they were premature to be
in the "master" branch. You want to continue polishing them in a topic branch, so create "topic/wip" branch off of the current HEAD. 2. Rewind the master branch to get rid of those three commits. 3. Switch to "topic/wip" branch and keep working.
więc reset cofa commity zawsze na gałęzi master, a to pozwala wydzielić pewne commity z gałęzi master do dowolnej innej gałęzi. Możesz spróbować zrobić drugiego clone-a z HEAD-em w masterem ustawionym od razu na ten pożądany commit, a lokalne zmiany z gałęzi poligon czy nicraM przenieść jako patch do tego nowego clone-a.
Jest jeszcze taka możliwość: git checkout nicraM git reset --hard origin/nicraM/<commit_id> o ile zmiany z nicraM nie push-owałeś do origin-a.
--
Pozdrawiam Marcin / nicraM
-- Pozdrawiam Tomasz Chiliński, Chilan ______________________________**_________________ lms mailing list lms@lists.lms.org.pl http://lists.lms.org.pl/**mailman/listinfo/lmshttp://lists.lms.org.pl/mailman/listinfo/lms
uczestnicy (2)
-
Marcin
-
Tomasz Chiliński