Создайте ответвление мерзавца и вернитесь исходные к восходящему состоянию

Предполагая, что у вас есть доступ к Python-части уравнения , самый простой способ решить эту проблему - это сериализовать объект в некотором взаимно понимаемом формате.

В этом случае одной идеей было бы сериализовать байты в base64 (уникод, такой как UTF-8 или -16, может столкнуться с проблемами кодирования в зависимости от содержимого байтовой строки). Затем вы можете преобразовать эти байты base64 в UTF-8 , чтобы передать его обратно между программами.

Это выглядит (например):

base64.b64encode(pickle.dumps("Some data goes here")).decode("utf-8")
31
задан Andriy Drozdyuk 21 April 2009 в 15:02
поделиться

3 ответа

Что ж, решение было довольно простым, намекнули Пат Нотц и Бомбе.

#Make sure we're on the master branch
$ git checkout master

# Make a new branch to hold the work I've done
$ git branch old_master
# Save this branch on my remote repo (for backup)
$ git checkout old_master
$ git push origin old_master

# Reset my local master back to match the commit just before I started 
# working on my new feature
$ git checkout master
$ git reset --hard 2aa93842342342
# Get it to be the same as my Central
$ git pull upstream master

# Now DELETE my master on my remote repo
$ git push origin :master
# And recreate it
$ git push origin master

# Branch created!
#* [new branch]      master -> master

#

Теперь у меня есть две замечательные ветви: мастер и старый_мастер С мастером, являющимся копией моего Центрального, для исправлений в производстве, и old_master, хранящим всю работу, которую я сделал ранее!

Спасибо!

47
ответ дан 27 November 2019 в 22:01
поделиться

Что именно вы подразумеваете под

, я испортил [своего] своего хозяина и больше не могу от него отходить.

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

По сути, вы можете вернуть свой репозиторий любое состояние, которое у него было ранее, потому что Git не будет явно удалять какие-либо объекты, он будет время от времени только собирать ненужные (висячие) объекты. Так что вам просто нужно выяснить, как выглядел ваш репозиторий. gitk или git log могут вам в этом помочь.

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

3
ответ дан 27 November 2019 в 22:01
поделиться
# Make sure we're on the master branch
$ git checkout master

# Make a new branch to hold the work I've done
$ git branch old_master

# Reset my local master back to match origin/master
$ git reset --hard origin/master

Теперь вы можете оформить заказ old_master и использовать его так же, как вы сделали свою ветку

16
ответ дан 27 November 2019 в 22:01
поделиться
Другие вопросы по тегам:

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