переключите ответвление мерзавца без контроля файлов

Одно решение состоит в том, чтобы сделать другой процесс, чтобы выполнить Ваше чтение процесса или сделать поток из процесса с тайм-аутом.

Вот потоковая версия функции тайм-аута:

http://code.activestate.com/recipes/473878/

Однако необходимо ли считать stdout, поскольку он входит? Другое решение может состоять в том, чтобы вывести вывод в файл и ожидать процесса, чтобы закончить использовать p.wait () .

f = open('myprogram_output.txt','w')
p = subprocess.Popen('myprogram.exe', stdout=f)
p.wait()
f.close()


str = open('myprogram_output.txt','r').read()

89
задан Zoe 10 November 2017 в 15:35
поделиться

6 ответов

Да, вы можете это сделать.

git symbolic-ref HEAD refs/heads/otherbranch

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

git reset
98
ответ дан 24 November 2019 в 07:17
поделиться

Не было бы лучшим решением иметь два рабочих каталога (две рабочие области) с одним репозиторием или даже два репозитория?

В разделе contrib / есть инструмент git-new-workdir , который поможет вам в этом.

14
ответ дан 24 November 2019 в 07:17
поделиться

Думаю, вы ищете команду сантехники git read-tree . Это обновит индекс, но не обновит файлы в вашем рабочем каталоге. Например, если предположить, что ветка - это имя ветки, которую нужно прочитать:

git read-tree branch

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

git symbolic-ref HEAD refs/heads/branch
8
ответ дан 24 November 2019 в 07:17
поделиться

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

0
ответ дан 24 November 2019 в 07:17
поделиться

Вы можете перезаписать файл HEAD другим именем ветки:

echo "ref: refs / Heads / MyOtherBranch"> .git / HEAD

7
ответ дан 24 November 2019 в 07:17
поделиться

Если вы просто пытаетесь изменить, где находится удалённое ответвление, вы можете сделать это с помощью "git push", не трогая вашу локальную копию.

http://kernel.org/pub/software/scm/git/docs/git-push.html

Формат параметра - необязательный плюс +, за которым следует ссылка на исходный текст , за которой следует двоеточие :, за которым следует ссылка на место назначения . Он используется для указания с каким объектом будет обновляться ссылка в удаленном репозитории.

например, для обновления foo для фиксации c5f7eba сделайте следующее:

git push origin c5f7eba:foo

Не уверен, что это то, за чем вы охотились или нет.

0
ответ дан 24 November 2019 в 07:17
поделиться
Другие вопросы по тегам:

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