Git-в чем разница между push.по умолчанию "совпадение" и " простой"
Я уже давно использую git, но мне никогда не приходилось создавать новое удаленное РЕПО, и мне было любопытно это сделать. Я читал учебники, и я запутался в том, как заставить "git push" работать.
Если я просто использовать git push он просит меня увидеть ветку по умолчанию (?) чтобы указать? В чем разница между этими двумя вариантами это дает мне?
git config --global push.default matching
git config --global push.default simple
сопоставление просто толкает любые ветви, которые у меня есть на моем локальном РЕПО, и если они не совпадайте, я должен затем вручную сказать ему, чтобы нажать все новые локальные ветви, которые у меня есть, правильно? Это лучшая практика для использования или просто лучше?
3 ответов:
git pushможно нажать все ветви или один зависит от этой конфигурации:нажмите все ветви
git config --global push.default matchingон будет толкать все ветви к удаленной ветви и объединит их. Если вы не хотите нажимать все ветви, вы можете нажать только текущую ветвь.
нажимайте только на текущую ветку
git config --global push.default simpleТак что, на мой взгляд, лучше использовать эту опцию и нажимать свой код ветка за веткой. Лучше толкать ветки вручную и индивидуально.
для дальнейшего чтения, пожалуйста, перейдите по этой блоге
из документации GIT:Git Docs
Ниже приведена полная информация. Короче говоря,
simpleбудет только толкатьcurrent working branchи даже тогда, только если он имеет то же имя на удаленном. Это очень хорошая настройка для начинающих и станет по умолчанию вGIT 2.0, тогда как
matchingбудет толкать все филиалы локально, которые имеют то же имя на удаленном компьютере. (Без учета вашей текущей рабочей ветви). Это означает, что потенциально будет выдвинуто много разных ветвей, в том числе те, которые вы, возможно, даже не захотите делиться.в моем личном использовании, я обычно использую другой вариант:
current, который помещает текущую рабочую ветку, (потому что я всегда ветку для каких-либо изменений). Но для новичка я бы предложилsimpleпуш.по умолчанию
Определяет действие, которое git push должен предпринять, если нет refspec явно дано. Различные значения хорошо подходят для конкретных рабочие процессы; для например, в чисто Центральном рабочем процессе (т. е. выборка источник равен месту назначения толчка), вверх по течению, вероятно, что вы хотите. Возможные значения:ничего - не нажимайте ничего (ошибка), если refspec не является явно дано. Это в первую очередь предназначено для людей, которые хотят избежать ошибки, всегда будучи явными.
current-нажмите на текущую ветку, чтобы обновить ветку с тем же имя на принимающей стороне. Работает как в центральном, так и нецентрализованный потоки документооборота.
вверх по течению-отодвиньте текущую ветвь обратно к ветви, изменения которой обычно интегрируются в текущую ветку (которая называется @{против течения.)} Этот режим имеет смысл только в том случае, если вы нажимаете на тот же репозиторий, из которого вы обычно извлекаете (т. е. центральный рабочий процесс).
простой - в централизованный документооборот, работа как вверх по течению с безопасность, чтобы отказаться от нажатия, если имя восходящей ветви отличается от местных жителей один.
при нажатии на пульт, который отличается от удаленной вами нормально вытяните от, Работа как течение. Это самый безопасный вариант и подходит для начинающих.
этот режим станет стандартным в Git 2.0.
соответствие-нажмите все ветви, имеющие одинаковое имя на обоих концах. Этот делает репозиторий, который вы нажимаете, чтобы запомнить набор ветвей это будет выталкиваться (например, если вы всегда нажимаете maint и master там и нет другие ветви, репозиторий, к которому вы нажимаете, будут иметь эти две ветви, и ваш местный maint и мастер будут нажаты там.)
чтобы эффективно использовать этот режим, вы должны убедиться, что все филиалы вы бы вытолкнуть готовы быть вытолкнут перед запуском git push, поскольку весь смысл этого режима заключается в том, чтобы позволить вам нажать все ветки в один присест. Если вы обычно заканчиваете работу только на одной ветке и вытолкните результат, в то время как другие ветви не завершены, этот режим не для тебя. Также этот режим не подходит для толкания в общий центральный репозиторий, так как другие люди могут добавлять туда новые ветви, или обновите кончик существующих ветвей вне вашего контроля.
в настоящее время это значение по умолчанию, но Git 2.0 изменит значение по умолчанию на простой.
Git v2.0 примечания к выпуску
примечания по обратной совместимости
, когда
git push [$there]не говорит, что толкать, мы использовали традиционная семантика "соответствия" до сих пор (все ваши ветви были отправлены к удаленному до тех пор, пока там уже есть ветки с таким же названием туда.) В Git 2.0 по умолчанию теперь используется" простая " семантика, что толкает:
только текущей ветки в ветку с тем же именем, и только Когда текущая ветвь настроена на интеграцию с этим пультом дистанционного управления ответвление, если вы нажимаете на тот же пульт, что и вы извлекаете; или
только текущей ветки в ветку с тем же именем, если вы нажимаем на пульт, который не там, где вы обычно извлекаете.
вы можете использовать переменную "нажимаем.по умолчанию" изменить этот. Если вы старожил, который хочет продолжать использовать семантика "соответствия", вы можете установить переменную в "соответствие", для образец. Прочитайте документацию для других возможностей.
, когда
git add -uиgit add -Aвыполняются внутри подкаталога не указывая, какие пути следует добавить в командной строке, они работайте на всем дереве для согласованности сgit commit -aи другие команды (эти команды используются для работы только с текущими подкаталог.) Скажиgit add -u .илиgit add -A .если вы хотите ограничьте операцию текущим каталогом.
git add <path>это то же самое, чтоgit add -A <path>теперь, так чтоgit add dir/заметит пути, которые вы удалили из каталога и запишите удаление. В старых версиях Git,git add <path>используется игнорировать удаления. Вы можете сказатьgit add --ignore-removal <path>to добавить только добавленные или измененные пути в<path>, если вы действительно хотите.
Comments