Я довольно новичок в git и не совсем уверен, как это задавать. Моя работа по-прежнему использует CVS, и я начинаю настаивать на том, чтобы отодвинуть нас от нее, однако у нас есть собственный сервер сборки, который тегирует cvs-проверки с определенным тегом на основе последней проверенной версии каждого класса java, как определено нашим отслеживателем задач система. Затем он проверяет каждый файл на основе тега. Это позволяет нам проверить версию проекта, исходя из того, какую задачу мы отметили для выпуска. Мне любопытно, возможно ли что-то подобное в git, и если да, то как это будет сделано. Спасибо за указатели. Я прочитал книгу pro git и до сих пор не понял, возможно ли это.Есть ли способ указать теги на файл и проверить их?
ответ
Метки в файле: no. Выезд по тегу: да.
Более конкретно, тег git, это только другой способ указать конкретную фиксацию. Каждая фиксация имеет «истинное имя», одно из этих 40-значных значений SHA-1, таких как 676699a0e0cdfd97521f3524c763222f1c30a094
. Эти истинные имена не полезны для людей, поэтому мы даем им значащие имена, либо маркируя кончик ветки (например, master
), а затем ссылаясь на фиксацию по ее расстоянию от ответвления (например, master~3
будет " третья фиксация назад от кончика ") или более статическим именем.
Переменные названия ветвей перемещаются - в конце концов, это их целая точка; имея ветвь с именем master
, а другая с именем develop
не привела бы нас никуда, если бы мы не смогли добавить фиксации к develop
, а затем объединить их обратно в master
. Поэтому нам также нужны «не движущиеся имена», и это теги.
Чтобы проверить с помощью тега, просто сделать:
git checkout tagname
Git будет искать соответствующее обязательство SHA-1 и проверить, что особое обязательство, т.е. восстановить всю работу дерево до состояния, в котором оно было, когда совершена фиксация (конечно, не считая необнаруженных и проигнорированных файлов).
Git также даст вам немного страшное сообщение о «отсоединенной головке» (похоже, что вы были гильотинированы), но это просто говорит вам, что вы больше не «на ветке», а если вы сделайте новые коммиты, они будут работать отлично, но также не будет «на ветке». Поскольку коммиты регистрируются, они являются полупостоянными, даже если они не «на ветке» (они остаются на некоторое время до окончания записи в журнале), но их трудно найти, поскольку имена ветвей (и, конечно же, теги тоже !) - это простой способ найти фиксации.
Кстати, как пользователь CVS, вы можете спросить, как вы можете проверить тег версии «v1.3» файла A
и использовать его с тегом версии «v2.7» файла B
. Вы можете сделать это в мерзавце: начните, проверяя нужный тег для «всех файлов» (скажем v2.7 для всего), а затем извлечь один файл, который вы хотите вернуть:
git checkout v2.7
git checkout v1.3 -- fileA
You теперь есть v2.7 «всего», кроме файлаA. Если эта комбинация полезна для какой-то причины, хотя, философия мерзавца не «делает особый способ проверить это», а «теперь делает коммит из этого, и дать ему имя»:
# test test test, yes, this is what we need for Customer X
git status # make sure we're ready to commit
git commit -m "special version for customer X"
git tag customerX
Теперь у вас есть тег, который вы можете использовать для обозначения «v2.7 всего, кроме v1.3 файлаA».Это фиксация, поэтому она является постоянной, если у нее есть имя (и мы просто дали ее один, customerX
).
Большое спасибо. Ваше объяснение репликации функций CVS может работать. Я дам то, что вы предложили попробовать! –
- 1. Есть ли способ проверить, используется ли файл?
- 2. Есть ли способ проверить, зашифрован ли файл?
- 3. Есть ли способ проверить, открыт ли файл?
- 4. Есть ли способ проверить, что файл используется
- 5. Есть ли способ указать область?
- 6. Есть ли способ проверить метаданные?
- 7. Есть ли способ проверить, есть ли хост?
- 8. android есть ли способ проверить файл xml на телефоне
- 9. Есть ли способ указать переполнение в CSS?
- 10. Typcript - есть ли способ указать глобальную ссылку?
- 11. Есть ли способ указать пользовательский файл инициализации при запуске emacs?
- 12. Есть ли способ проверить request.user на ManyToManyField
- 13. есть ли способ использовать теги в Android?
- 14. Есть ли способ удалить повторяющиеся теги?
- 15. Пользовательские теги html - Есть ли лучший способ?
- 16. Есть ли способ проверить, закрыт ли TextWriter?
- 17. Есть ли способ указать разрешения на удаление в svn?
- 18. Есть ли способ проверить покрытие плагина vim?
- 19. Есть ли способ указать формат ввода date.js?
- 20. Есть ли способ указать класс объектов NSMutableArray?
- 21. Есть ли способ указать спецификатор в printf?
- 22. Есть ли способ проверить unique_together?
- 23. Есть ли способ указать платформу для os.path?
- 24. Есть ли лучший способ проверить булеву логику
- 25. Есть ли способ указать контроллер для {{render}}?
- 26. Есть ли способ указать точку drag_to?
- 27. есть ли способ указать максимальную длину предпочтения?
- 28. Есть ли способ указать ширину встроенного gist?
- 29. Есть ли способ проверить, включена ли TLS?
- 30. Есть ли способ добавить своего рода «пользовательские теги» и фильтровать их в Excel?
Если вы используете инструмент репо для управления проектами git, вы также можете использовать файлы с версиями-манифеста. Yuo хочет это для одного репо или нескольких репозиций, которые управляются с использованием файлов манифеста (.xml)? – mrutyunjay
Было бы много. На самом деле сотни. –
Итак, вы используете инструмент репо для управления им? – mrutyunjay