Мерзавец: Как двинуться вперед-назад между фиксациями

У меня есть вопрос о новичке о Мерзавце:

Я должен двинуться вперед-назад в истории ответвления. Это означает, я должен получить все файлы к состоянию, в котором они были в некотором старом пересмотре, и затем я должен возвратиться к последнему состоянию в репозитории. Я не должен фиксировать.

С SVN это было бы

svn up -r800

добираться до пересмотра 800, и

svn up

войти в синхронизацию с репозиторием.

Я знаю хеш фиксации, к которой я хочу возвратиться, таким образом, я попробовал

git reset 

который, кажется, получает меня там. Но затем я попробовал

git pull

но это жалуется на конфликты.

Таким образом, что надлежащий путь состоит в том, чтобы переместить через историю ответвления?

Я думаю с точки зрения SVN, не смущайтесь указывать на меня на некоторое хорошее учебное руководство. Обратите внимание, что я уже проверил http://git.or.cz/course/svn.html и http://www.youtube.com/watch?v=8dhZ9BXQgc4.

Спасибо, Ondra.

70
задан dotancohen 2 February 2014 в 07:20
поделиться

3 ответа

Ну, я тоже бывший пользователь SVN, а теперь используете Git для всех моих проектов.

При использовании GIT вы должны изменить способ мышления от архитектуры клиент-сервер, который используется в SVN. В SVN каждое изменение нуждается в соединении с сервером. Использование GIT, ваше REPO находится в рабочем каталоге. Вам не нужна связь для каждого действия REPO.

Используйте только Git Push и Git Pull , чтобы синхронизировать с помощью REPO. Подумайте об этом, как используя rsync или любое резервное решение, чтобы сделать два места именно то же самое. Как вы подключаете внешний резервный жесткий диск, затем сделайте контент в нем же с контентом в вашем основном. Это использование git pull и Git push .

Если вы просто хотите вернуться взад и вперед историю, сделайте это, используя его Git Checkout . Смотрите идентификатор ревизии, используя историю Git . Если вы используете Linux, используйте Gitk , чтобы увидеть дерево ревизии. В Windows, черепаха Git может отображать его с помощью ревизионного графа.

Чтобы вернуться к последнему пересмотре, используйте Master Checkout Git . Прежде чем делать любую команду, всегда делай себя статус Git . Эта команда отобразит что-нибудь, что нужно знать о текущем состоянии репо, и какое действие, которое вам нужно сделать, чтобы сделать это правильно. Перед тем как сделать GIT тянуть и GIT толчок , то лучше, чтобы убедиться, что мерзавец статус результат содержит текст рабочий каталог чистой .

Если вам нужно вернуть файл к предыдущей ревизии, вы можете сделать это с помощью Git Merge . Прежде чем делать это в файл, сначала проверьте его с помощью Git diff . EX: GIT Diff Rev1: Rev2 Filename . Он будет распечатан любой другой между двумя ревизиями. Изменение в Rev1 будет заменено изменениями в Rev2. Так что делать возврат, Rev2 будет старше, чем Rev1. После того, как вы удовлетворяете с результатом различий, сделайте это с мерзавца слияния , просто замените дифф с слияние , все остальные параметры остаются неизменными.

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

67
ответ дан 24 November 2019 в 13:23
поделиться

Вы можете использовать GIT Checkout , чтобы оформить заказ любой коммит, а затем использовать его с именем ветви, чтобы вернуться к именованному ветру.

Git Checkout с идентификатором фиксации, а не именем ветви, отказывается от любой именованной ветви и на то, что известно как отсоединенная головка .

Если вы используете RESET , то он будет перемещать вашу ветку обратно в старое состояние, сидеть более поздние коммиты, которые, вероятно, не то, что вы хотите.

37
ответ дан 24 November 2019 в 13:23
поделиться

Для оформления различной версии файла, используйте

git checkout rev -- filename

, где Rev может быть идентификатором фиксатора, название филиала, имя тега или относительная версия.

Используйте журнал Git , , GITK , чтобы посмотреть, чтобы посмотреть версии, чтобы увидеть, какую версию файла вы хотите.

Чтобы сделать эту версию файла постоянного, вам необходимо совершить файл: GIT Добавить имя файла; GIT Commit Filename

Я бы не рекомендовал Git Pull для изучения версий, потому что он делает слияние - потенциально модифицировать ваше текущее состояние.

Вам не нужно использовать Git Reset в этом случае, если только вы Git Add файл, который вы решаете не совершать.

6
ответ дан 24 November 2019 в 13:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: