Как вернуться к более ранней ревизии без потери проделанной работы? - PullRequest
2 голосов
/ 18 декабря 2011

Я проделал некоторую работу над проектом, но потом понял, что это не тот путь.Поэтому я хочу вернуться к более раннему, чистому пересмотру.Однако я не хочу потерять работу, которую я проделал между этой чистой ревизией и сегодняшним днем, чтобы я мог обратиться к ней позже, если передумаю.в мерзавце?

Ответы [ 3 ]

6 голосов
/ 18 декабря 2011

Именно поэтому существует git stash:

  1. git stash
  2. git checkout earlier_point
  3. git stash pop
4 голосов
/ 18 декабря 2011

У вас есть два разумных варианта:

  1. Использовать git-stash .Просто наберите git stash, чтобы спрятать, или git stash save some descriptive message, чтобы дать ему описательное сообщение.Затем вы можете применить это позже с помощью git stash apply (или git stash pop).

  2. Сделайте коммит, бросьте на него тег, затем вернитесь к родителю.Затем вы можете получить свою работу позже, открыв тег.Это будет git commit -m 'Temp work'; git tag tempWork; git reset --hard HEAD^

0 голосов
/ 18 декабря 2011

Предполагая, что ваши "плохие" коммиты были сделаны на мастере, они НЕ были переданы кому-либо и 13d7 представляет последний "хороший" коммит:

git checkout -b my_bad_branch
// создаем новую ветку, которая содержит все, что мы сделали, таким образом *
мастер проверки git
git reset --hard 13d7
// сбросим указатель головы на master, чтобы он указывал на известный удачный коммит

Или, если они были переданы:

git checkout -b my_bad_branch
мастер проверки git
git revert 13d7
// создаем новые коммиты, которые отменяют плохие коммиты после 13d7
git push
// убедитесь, что все получают мастер, который исправляет плохие коммиты

...