Сохранение изменений в удаленной ветке в Git - PullRequest
2 голосов
/ 26 января 2010

Я использую Git для своих личных проектов с удаленным репозиторием, размещенным на сайте сборкиmbla.com. Я привык к простому svn-подобному рабочему процессу, но сейчас я пытаюсь сделать что-то, что (я думаю) должно быть относительно простым, но документация git не помогла мне достичь этого до сих пор.

Это ситуация. Я сделал кучу изменений в своей локальной ветке master и зафиксировал их. Теперь я понимаю, что мои изменения не являются абсолютно необходимыми и скорее наносят ущерб производительности, но могут быть полезными / необходимыми в будущем. Поэтому я хочу вернуть предыдущее состояние, сохранив эти изменения где-нибудь. Конечно, git reset --hard не будет делать, потому что он навсегда сотрет мои изменения.

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

Буду благодарен за любые идеи о том, как это сделать, независимо от того, связаны ли они с удаленными филиалами.

Ответы [ 3 ]

3 голосов
/ 26 января 2010

Вы хотите создать ветку на вашей текущей ГОЛОВКЕ:

git branch possibly-useful-stuff

и затем сбросьте вашу основную ветвь обратно туда, где она находится, вероятно, одну из них:

git reset --hard origin/master  # the remote branch
git reset --hard master~<n>     # n commits before master
git reset --hard <hash>         # a specific commit

Чтобы отслеживать их на пульте, вам просто нужно передать эту ветку на пульт:

git push <remote> possibly-useful-stuff
1 голос
/ 26 января 2010

Самое простое - создать новую ветку, содержащую ваше текущее состояние. Затем вы можете передать его на удаленный мастер и сбросить свою главную ветвь обратно в положение удаленного мастера.

* 1003 Е.Г. *

git branch side-lined

git push origin side-lined

git reset --hard origin/master
0 голосов
/ 26 января 2010

У меня сейчас нет конкретного git, но я использую Mercurial. Если бы я столкнулся с такой ситуацией с Mercurial, я бы зафиксировал его как ветку (как-то, так или иначе), а затем проверил желаемую ревизию.

На моем следующем коммите Mercurial создаст новую head ревизию. Я знаю, что это вообще, но у меня была идея, поэтому я поделился ею.

Git и Mercurial схожи, так что я думаю, что идеи должны работать для вас ... (Обратите внимание, что существуют терминологические различия, и я не могу использовать правильные термины)

Примечание : Похоже, что другие с тех пор опубликовали специальные указания git, выполняя то, что я описывал.

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