Git возвращается назад - PullRequest
       1

Git возвращается назад

1 голос
/ 17 февраля 2012

git log говорит

commit 2bf345e15dadba9f2e01ef2e0c3890d6cbab1153
Merge: d3b6ba8 aa94bf7
Author: Stack Overflow User <user@stackoverflow.com>
Date:   Tue Feb 14 01:00:48 2012 -0500

    Merge branch 'master' of bitbucket.org:hobbes3/scoutmob

commit d3b6ba8f1d57c530c2d8ab9bb879fcac67d3de35
Author: Stack Overflow User <user@stackoverflow.com>
Date:   Tue Feb 14 00:59:37 2012 -0500

    Revert "Added image info window"

    This reverts commit fad04be93334647d1b1e3b4d454a70819213ecac.

commit d119c3961da515c0cb2c6c9154003e52846cf848
Author: Stack Overflow User <user@stackoverflow.com>
Date:   Tue Feb 14 00:22:56 2012 -0500

    Revert "Moved some files around to combine the common folder between scoutmob and ajax-example"

    This reverts commit 845f8d52c3655f3cf6b03da057281e5fb303721c.

commit aa94bf75fb064c6fe521501765d86c894aa5b436
Author: Another user <user_two@stackoverflow.com>
Date:   Sat Feb 11 10:42:03 2012 -0500

    removing .txt

commit b633d23a5b10ad7531855905d6f41897ce6726ad
Author: Another user <user_two@stackoverflow.com>
Date:   Sat Feb 11 10:40:04 2012 -0500

    testing data import

commit fad04be93334647d1b1e3b4d454a70819213ecac
Author: Stack Overflow User <user@stackoverflow.com>
Date:   Sat Feb 11 03:55:54 2012 -0500

    Added image info window

commit 51f9cc7cd19f15540ac2631168a0a91c03a30139
Author: Stack Overflow User <user@stackoverflow.com>
Date:   Tue Feb 7 22:29:58 2012 -0500

    Added deal info to the info window of the marker.

....

commit 845f8d52c3655f3cf6b03da057281e5fb303721c
Author: Stack Overflow User <user@stackoverflow.com>
Date:   Tue Jan 31 10:42:21 2012 -0500

    Moved some files around to combine the common folder between scoutmob and ajax-example

'git status' говорит

# On branch master
# Your branch is ahead of 'origin/master' by 3 commits.
#
nothing to commit (working directory clean)

git branch -rv говорит

origin/HEAD    -> origin/master
origin/master  aa94bf7 removing .txt
origin/working cb65aef My location now works. Will work on the graphics next.

Пару дней назад моя главная ветвь имела самый последний коммит в fad04be. Тогда я решил, что хочу временно посмотреть мой старый код. Поэтому я вернулся обратно, используя git revert 845f8d5.

Оглядываясь назад, я понял, что должен был сначала проверить новую ветку. Затем я попытался вернуться, используя git revert 'fad04be. Когда я побежал git status он сказал что-то вроде Your branch is ahead of 'origin/master' by 1 commit.

Итак, затем я попытался git pull из удаленного репозитория вернуть свой текущий код обратно, и теперь я все в замешательстве.

Я просто хочу, чтобы мой локальный и удаленный репозиторий были в коммите fad04be. Что я сделал не так и что я могу сделать?

Ответы [ 3 ]

4 голосов
/ 17 февраля 2012

ПРИМЕЧАНИЕ: прежде чем следовать любому из моих советов, сделайте полную копию своего каталога. Таким образом, вы всегда можете вернуться к текущей ситуации

Как действительно упоминает Оах, ваш мастер теперь должен быть именно таким, каким вы хотите, с двумя дополнительными коммитами, а именно с ревертами 845f8d5 и fad04be.

Вы можете сделать 2 вещи сейчас. Если вы еще ничего не передавали на пульт, вы можете вернуть главный указатель на fad04be с помощью

git reset --HARD fad04be

В качестве альтернативы, если вы уже что-то передали на пульт или кому-то еще, вы можете отменить возврат. Если вы сделаете git log, вы увидите два последних коммита, представляющих собой возвраты 845f8d5 и fad04be. Вы можете отменить эти возвраты, выполнив

git revert <commit-id-of-revert>

В следующий раз, когда вы хотите увидеть старую ревизию, действительно используйте:

git checkout <revision-id>

Не забудьте сделать

git checkout master

когда вы закончите. Если вы изменяете и фиксируете вещи, не делая этого, ваши коммиты будут куда-то идти, но не в ветке master (git будет жаловаться на то, что находится в состоянии отсоединенной головы, но это предупреждение легко пропустить - поверьте мне, я там был :))

Также смотрите старую ревизию, нет необходимости сначала создавать другую ветку.

1 голос
/ 17 февраля 2012

Используйте git checkout <commit-id>, чтобы быстро взглянуть на коммит. git revert <commit-id> вернет один коммит <commit-id>, добавив новый коммит.

1 голос
/ 17 февраля 2012

Git revert на самом деле является коммитом, который просто отменяет предыдущий коммит.Я так понимаю, тяга ничего не сделала?Вам нужно только нажать кнопку возврата.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...