Запуск команды оболочки с git filter-branch - PullRequest
0 голосов
/ 01 июня 2019

Я пытаюсь создать приложение, которое изменяет временную метку git commit history с помощью git filter-branch.Но я получаю неправильную метку времени, когда я выполняю следующий скрипт оболочки и проверяю историю коммитов git с помощью "git log".Я делаю неправильно с использованием аргумента функции?Любая помощь?



fix_commit_date() { 
    git filter-branch --env-filter \
    "if [ $GIT_COMMIT =  $(1) ]
     then
         export GIT_AUTHOR_DATE=\"$(2)\"
         export GIT_COMMITTER_DATE=\"$(2)\"
     fi" -f
}
fix_commit_date c1f456c87bd66cad07b24827946df5a44cac95f2 "Tue Mar 3 21:38:53 2009 -0800"

1 Ответ

2 голосов
/ 01 июня 2019

Следующий синтаксис предназначен для оценки кода в подоболочке и захвата вывода:

$(code here)

Принимая во внимание, что следующий синтаксис (ы) фиксирует некоторые способов разыменования позиционных параметров (подробнее см. sh(1)):

$1
${1}

Таким образом, вы видите неправильные результаты, потому что вы пытались запустить и зафиксировать вывод команд 1 и 2, которых, по всей вероятности, не существует.

Переключиться на один из вторых синтаксисов. И предпочитаю ставить в кавычки оба расширения.

...