Код ниже преобразует десятичное значение d в шестнадцатеричный. Это также позволяет Вам добавлять дополнение к шестнадцатеричному результату. Так 0 станет 00 по умолчанию.
function decimalToHex(d, padding) {
var hex = Number(d).toString(16);
padding = typeof (padding) === "undefined" || padding === null ? padding = 2 : padding;
while (hex.length < padding) {
hex = "0" + hex;
}
return hex;
}
Я уверен, что есть люди, которые делают вещи, отличные от моих. Однако я следую этому:
Самое лучшее в Git - это то, что он не навязывает вам никаких решений. Хуже всего в Git то, что он не навязывает вам никаких решений.
Ваш рабочий процесс полностью зависит от вас. Собираетесь ли вы сотрудничать или развиваетесь самостоятельно? У вас короткий или большой промежуток времени между выпусками? Эти ограничения могут помочь определить подходящий рабочий процесс.
Я работаю в небольшой команде из 4 разработчиков с двухнедельным циклом итераций. В начале цикла мы согласовываем объем и развиваемся против мастера. Все, что, как мы ожидаем, превысит двухнедельный срок, перемещается (или начинает свою жизнь) в ветке (это случается не часто, наш объем ограничен).
В конце двухнедельного цикла мы выполняем нашу проверку качества, отметьте и отпустите. Начиная со следующего цикла, эти другие ветки снова объединяются в master.
Если вам нужно исправить выпуск, мы создаем ветку, фиксируем, проверяем качество, теги и выпускаем.
Для чего-либо экспериментального мы обычно создаем новую ветку и держим ее изолированной от главной, пока она не станет
Таким образом, наша команда разветвляется, когда:
Наш рабочий процесс очень централизован и, вероятно, не типичен для многие пользователи Git. Нет ни правильного, ни неправильного, просто нужно выбрать наиболее подходящий.
Наш рабочий процесс очень централизован и, вероятно, не типичен для многих пользователей Git. Нет ни правильного, ни неправильного, просто нужно выбрать наиболее подходящий.
Наш рабочий процесс очень централизован и, вероятно, не типичен для многих пользователей Git. Нет ни правильного, ни неправильного, просто нужно выбрать наиболее подходящий.
Я не понимаю, что вы имеете в виду, говоря о ветвлении каждой версии текущего проекта.
В любом случае, git советует вам создать «тематическую ветку». Под «тематической веткой» это означает, что вы создаете ветку, когда работаете над функцией / ошибкой. Допустим, я работаю над jQueryUI, и меня попросили добавить в календарь jQuery функцию, которая позволяет пользователю указывать даты, которые нельзя выбрать.
Если я нахожусь в ветке с именем master, я создам локальную ветку с именем «SpecifyDateExclusion» и начну вносить свои изменения. Весь код, связанный с этой функцией, будет помещен в эту ветку.
master
|
|
|___ SpecifyDateExclusion
Пока я работаю над этой функцией, приходит сообщение об ошибке, что календарь в Opera 10 не работает, и эту ошибку необходимо исправить сейчас. Я возвращаюсь в свою основную ветку и создаю другую ветку с именем Opera10BugFix и начинаю исправлять в ней ошибки.
master
|
|
|___ SpecifyDateExclusion
|
|
|___ Opera10BugFix
Очень скоро у вас могут появиться такие ветки, как
master
|
|
|___ SpecifyDateExclusion
|
|___ Feature1
|
|___ Feature2
|
|___ Feature3
|
|___ Opera10BugFix
|
|___ BugFix1
|
|___ BugFix2
В чем преимущество, спросите вы?
Преимущество заключается в гибкости. дает мне при подготовке моего релиза. Допустим, мой следующий выпуск в основном посвящен исправлениям ошибок.
Я создам новую ветку с именем 'InterimBugFix' из master и объединю все свои ветки с исправлениями ошибок.
Если я хочу создать сочетание выпуска ошибки / функции, я создам ветку с именем «NextVersion» из мастера и объединю свои ветки функции / исправления ошибок.
Git чрезвычайно эффективен в том, как вы управляете этими ветвями и если вы можете что-то вообразить, Git позволит вам это сделать.
Вы можете спросить, какое преимущество?Преимущество заключается в гибкости, которую он дает мне при подготовке моего релиза. Скажем, мой следующий выпуск в основном посвящен исправлениям ошибок.
Я создам новую ветку с именем 'InterimBugFix' из мастера и объединю все мои ветки исправления ошибок.
Если я хочу создать сочетание выпуска ошибки / функции, я создам ветку с именем «NextVersion» из мастера и объединю свои ветки функции / исправления ошибок.
Git чрезвычайно эффективен в том, как вы управляете этими ветвями и если вы можете что-то вообразить, Git позволит вам это сделать.
Вы можете спросить, какое преимущество?Преимущество заключается в гибкости, которую он дает мне при подготовке моего релиза. Скажем, мой следующий выпуск в основном посвящен исправлениям ошибок.
Я создам новую ветку с именем 'InterimBugFix' из мастера и объединю все мои ветки исправления ошибок.
Если я хочу создать сочетание выпуска ошибки / функции, я создам ветку с именем «NextVersion» из мастера и объединю свои ветки функции / исправления ошибок.
Git чрезвычайно эффективен в том, как вы управляете этими ветвями и если вы можете что-то вообразить, Git позволит вам это сделать.
Если есть сомнения, переходите. Филиалы дешевы, и информацию из новых филиалов можно легко передать в старые. Когда ветка изжила себя, ее можно легко убить.
В разработке веб-приложений мы делаем следующее:
Мы поддерживаем нетронутую ветвь под названием «Производство». Он содержит код, который существует на действующих веб-сайтах.
Любые изменения этого происходят в ветвях задач. Таким образом, вы можете увидеть ветку Task-13923-add-feature-x. Эти ветви созданы из производственной ветви , и производственная ветвь должна быть объединена с ними перед объединением в производственную (так что это всегда чистая перемотка вперед, без потенциальных конфликтов).
Все остальные время от времени объединяют ветку «Производство» со своими ветвями задач, чтобы оставаться в курсе.
На этот вопрос есть много ответов в зависимости от ваша «стратегия ветвления». Два самых простых (по моему опыту) - это ветки задач / функций и ветки выпуска. То, что вы будете использовать, будет зависеть, помимо прочего, от того, как работает ваш цикл выпуска.
Если вы интегрируете и выпускаете непрерывно, то ветви задач / функций имеют смысл, поскольку они оставляют «главную» (транк в других VCS) в относительно стабильном состоянии, что упрощает выпуск релизов. Но если у вас более структурированный цикл выпуска, возможно, ветви выпуска будут иметь больше смысла, поскольку их можно использовать для более тщательного определения того, что будет добавлено к каждому выпуску. Конечно, возможна и гибридная стратегия.
Я обычно использую ветки задачи / функции, поэтому каждая ошибка или запрос функции ветвятся. Затем обрабатывается и по завершении снова объединяется с мастером.