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