Я ищу Git альтернативы "SVN Info".
Сегодня я добавил некоторую информацию, которую Subversion предоставляет мне с помощью команды "svn info" прямо в мою сборку, и затем она помещается в исходный файл, который печатает это во время запуска. Таким образом, я всегда знаю, откуда взялась эта сборка и как ее вернуть.
Если у вас есть "svn info", такая как URL, корень репозитория, UUID репозитория и версия, у вас есть хорошая связь между тем, что развернуто, и системой сборки. И если кто-то сообщает об ошибке, вы знаете, откуда появилось это программное обеспечение, и поскольку эта информация была автоматически включена, риск человеческой ошибки меньше.
Теперь вопрос в том, какую информацию мне нужно получить от Git, чтобы я мог позже определить, откуда появилась эта сборка? И как я могу использовать эту информацию, чтобы вернуться именно к этой версии?
(Может быть, мне нужно добавить некоторую информацию о "сборке компьютера", так как Git распространяется.)
Обновление: использование rev-parse было действительно полезным, и я получил что-то вроде этого:
[email protected]:~/git_test$ git rev-parse HEAD
72ce5f3e13c61f76fde5c58cefc85eed91b6f1f8
И с этим магическим числом позже можно сделать:
[email protected]:~/git_test$ git checkout 72ce5f3e13c61f76fde5c58cefc85eed91b6f1f8
И я вернулся туда, где был.
Обновление: я думаю, что если я возьму некоторые части из этих сценариев, предоставленных VonC, и вставлю их в свой сборочный файл, я получу результат, который искал.
Обновление:
Заметка о "git description". Вам нужен реальный тег (tag -a) ранее в истории веток, чтобы это сработало, или вы получите что-то подобное.
fatal: cannot describe '72ce5f3e13c61f76fde5c58cefc85eed91b6f1f8'
Эта проблема также описана в " Git Tag по-умолчанию".
Но учтите, что оформление заказа все равно работает, хотя это было сообщение об ошибке.
git checkout 72ce5f3e13c61f76fde5c58cefc85eed91b6f1f8
Хотя обычно кажется, что вы создаете что-то вроде тега "ver1.0", а затем, если вы продолжаете работать, вы получаете что-то вроде этого:
[email protected]:~/git_test$ git describe
ver1.0-2-g4c7a057
[email protected]:~/git_test$ git tag -a ver2.0
[email protected]:~/git_test$ git describe
ver2.0
[email protected]:~/git_test$ git commit . -m "something..."
Created commit ac38a9d: something...
1 files changed, 1 insertions(+), 0 deletions(-)
[email protected]:~/git_test$ git describe
ver2.0-1-gac38a9d
Таким образом, если вы используете "Правильное describe
правильно, оно работает и может привести к более читабельным результатам, а также может быть действительно полезным.