Я не заметил это ранее, когда я смотрел документация для календарного модуля , но метод, названный , monthrange предоставляет эту информацию:
monthrange (год, месяц)
рабочий день Возвратов первого дня месяца и количества дней в месяце, в течение указанного года и месяца.
>>> import calendar
>>> calendar.monthrange(2002,1)
(1, 31)
>>> calendar.monthrange(2008,2)
(4, 29)
>>> calendar.monthrange(2100,2)
(0, 28)
так:
calendar.monthrange(year, month)[1]
походит на самый простой способ пойти.
Только, чтобы быть ясным, monthrange
високосные годы поддержек также:
>>> from calendar import monthrange
>>> monthrange(2012, 2)
(2, 29)
Мой предыдущий ответ все еще работы, но является явно субоптимальным.
Во-первых, нет такой концепции локального отслеживания ветвей, только удаленного отслеживания ветвей. Итак, origin / master - это ветвь удаленного отслеживания для master в репозитории origin .
Обычно вы выполняете git fetch $ remote который обновляет все ваши ветки удаленного отслеживания и при необходимости создает новые.
Однако вы также можете указать refspec, но он не коснется ваших ветвей удаленного отслеживания, вместо этого он получит указанную вами ветку и сохранит ее в FETCH_HEAD, если вы не укажете место назначения. В общем, вы не хотите связываться с этим.
Наконец,
fetch = +refs/heads/*:refs/remotes/origin/*
Это означает, что если вы сделаете
git fetch origin
Это действительно будет:
git fetch origin +refs/heads/*:refs/remotes/origin/*
Это означает, что удаленный Heads / foobar будет быть локальным remotes / origin / foobar ,
felipec ответил на большинство вопросов в своем ответе .
Несколько оставшихся (большинство из них взято из справочной страницы git fetch ; к сожалению, кое-где устарело):
Если ветка удаленного отслеживания (ветвь, которая отслеживает некоторая ветка в каком-то удаленном репозитории) не существует, она будет создана.
Ветвь, в которую вы загружаете (
в [+]
) не обязательно размещаться в пространстве имен remotes /
. Например, для зеркального отображения репозиториев ( git clone --mirror
) refspec составляет от 1 до 1. Раньше, до разметки отдельных пультов (до remotes /
пространство имен для удаленного отслеживания ссылок) главная ветвь была выбрана в ветвь с именем origin . Даже текущие теги извлекаются непосредственно в пространство имен tags /
зеркальным способом.
Если ветвь, в которую выполняется выборка (правая часть refspec
делает существует, Git проверит, приведет ли загрузка к быстрой перемотке вперед, т.е. если текущее состояние в
является предком состояния в
в данном удаленном репозитории. Если это не так 't, и вы не используете -f
/ - принудительно опцию
для git-fetch или префикс refspec с' + '(используйте +
refspec) fetch откажется обновлять эту ветку.
Мастер происхождения git fetch
эквивалентен мастеру источника fetch:
, а не мастеру источника fetch: мастер
; он сохраняет извлеченное значение главной ветки (удаленного источника ) в FETCH_HEAD , а не в главной ветви или удаленном отслеживании ] remote / origin / master
ветвь. За ним может следовать git merge FETCH_HEAD
. Обычно не используется напрямую, но как часть одноразового извлечения без установки ветки удаленного отслеживания: git pull
.
+ refs / Heads / *: refs / remotes / origin / *
как значение для remote.origin. Переменная конфигурации fetch означает, что каждая ветвь (ссылка в пространстве имен refs / Heads /
) в удаленном источнике выбирается в соответственно названную ветвь удаленного отслеживания в refs / remotes / origin /
, например, ветвь master в origin (т.е. refs / Heads / master
ref) будет извлечена в origin / master ветвь удаленного отслеживания (то есть refs / remotes / origin / master
ref). Префикс «+» означает, что выборка будет успешной даже в случае отсутствия быстрой перемотки вперед, что означает, что ветвление на удаленном компьютере перебазировано или перемотано (сброшено в какое-то состояние в прошлом) или изменено иным образом.
Sidenote: You вероятно, захочет использовать команду git remote более высокого уровня для управления удаленными репозиториями и получения обновлений.
refs / Heads / master
ref) будут извлечены в ветку удаленного отслеживания origin / master (то есть refs / remotes / origin / master
ref). Префикс «+» означает, что выборка будет успешной даже в случае отсутствия быстрой перемотки вперед, что означает, что ветвление на удаленном компьютере перебазировано или перемотано (сброшено в какое-то состояние в прошлом) или изменено иным образом.
Sidenote: You вероятно, захочет использовать команду git remote более высокого уровня для управления удаленными репозиториями и получения обновлений.
refs / Heads / master
ref) будут извлечены в ветку удаленного отслеживания origin / master (то есть refs / remotes / origin / master
ref). Префикс «+» означает, что выборка будет успешной даже в случае отсутствия быстрой перемотки вперед, что означает, что ветвление на удаленном компьютере перебазировано или перемотано (сброшено в какое-то состояние в прошлом) или изменено иным образом.
Sidenote: You вероятно, захочет использовать команду git remote более высокого уровня для управления удаленными репозиториями и получения обновлений.