Как экспортировать переменную в ударе

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

Чтобы вернуться к коммиту, вы можете сделать git reset --hard <commit sha1> или вместо sha1 использовать HEAD~3 для третьего коммита из текущего. Затем подтвердите ваши изменения.

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

git revert HEAD~3 сменить каталог. git commit -a -f "directory fix1"

git revert HEAD~2 изменить каталог. git commit -a -f "directory fix2"

git revert HEAD~1 изменить каталог. git commit -a -f "directory fix3"

10
задан jww 10 May 2018 в 02:34
поделиться

3 ответа

Это - единственный способ, которым я знаю, чтобы сделать то, что Вы хотите:

В foo.sh Вы имеете:

#!/bin/bash
echo MYVAR=abc123

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

$ eval "$(foo.sh)"  # assuming foo.sh is in your $PATH
$ echo $MYVAR #==> abc123

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

6
ответ дан 3 December 2019 в 18:36
поделиться

Установите переменную в/etc/profile (создайте файл в случае необходимости). Это по существу сделает переменную доступной для каждого процесса удара.

1
ответ дан 3 December 2019 в 18:36
поделиться

Едва ли - после того как Вы работаете в подпроцессе, Вы не можете влиять на своего родителя.

Там две возможности:

1) Получите сценарий, а не выполните его (см. источник.):

    source {script}

2) Имейте сценарий, производит команды экспорта и оценку что:

    eval `bash {script}`
OR:
    eval "$(bash script.sh)"

Править: Исправленный вторая опция быть оценкой, а не источником. Opps.

13
ответ дан 3 December 2019 в 18:36
поделиться
Другие вопросы по тегам:

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