Поиск…


Вступление

После изменения, постановки и передачи кода с помощью Git, нажатие необходимо сделать ваши изменения доступными для других и переносит локальные изменения на сервер репозитория. В этом разделе рассказывается, как правильно нажать код с помощью Git.

Синтаксис

  • git push [-f | --force] [-v | --verbose] [<remote> [<refspec> ...]]

параметры

параметр подробности
--force Перезаписывает удаленный ref, чтобы он соответствовал вашему местному справочнику. Может привести к тому, что удаленный репозиторий потеряет фиксации, поэтому используйте его с осторожностью .
--подробный Выполните многословие.
<Пульт> Удаленный репозиторий, предназначенный для операции push.
<Refspec> ... Укажите, какой удаленный ref обновить с помощью локального ref или объекта.

замечания

Вверх-вниз

С точки зрения контроля источника, вы находитесь «вниз по течению» при копировании (клонирование, проверка и т. Д.) Из репозитория. Информация передавалась вам «вниз по течению».

Когда вы вносите изменения, вы обычно хотите отправить их «вверх по течению», чтобы они попали в этот репозиторий, чтобы все, вытаскивая из одного источника, работали со всеми теми же изменениями. Это в основном социальная проблема того, как каждый может координировать свою работу, а не технические требования контроля источника. Вы хотите внести свои изменения в основной проект, чтобы не отслеживать разные направления развития.

Иногда вы будете читать о менеджерах пакетов или релизов (люди, а не инструмент), говорящие о внесении изменений в «вверх по течению». Обычно это означает, что они должны были корректировать исходные источники, чтобы они могли создать пакет для своей системы. Они не хотят продолжать делать эти изменения, поэтому, если они отправят «вверх по течению» в исходный источник, им не придется иметь дело с той же проблемой в следующей версии.

( Источник )

От себя

git push

будет подталкивать ваш код к существующему выше по течению. В зависимости от конфигурации push он либо выдает код из текущей ветки (по умолчанию в Git 2.x), либо из всех ветвей (по умолчанию в Git 1.x).

Укажите удаленный репозиторий

При работе с git может быть удобно иметь несколько удаленных репозиториев. Чтобы указать удаленный репозиторий для нажатия, просто добавьте его имя в команду.

git push origin

Укажите ветвь

Чтобы нажать на конкретную ветвь, скажем, feature_x :

git push origin feature_x

Установите ветвь удаленного отслеживания

Если ветвь, из которой вы работаете, изначально поступает из удаленного репозитория, просто использование git push не будет работать в первый раз. Вы должны выполнить следующую команду, чтобы сообщить git, чтобы нажать текущую ветвь на определенную комбинацию удаленного / ветви

git push --set-upstream origin master

Здесь master - это имя ветки в удаленном origin . Вы можете использовать -u как стенографию для --set-upstream .


Нажатие на новый репозиторий

Чтобы нажать на репозиторий, который вы еще не создали, или пусто:

  1. Создайте репозиторий на GitHub (если применимо)
  2. Скопируйте указанный вами URL-адрес в форме https://github.com/USERNAME/REPO_NAME.git
  3. Перейдите в локальный репозиторий и выполните git remote add origin URL
    • Чтобы проверить, что это было добавлено, запустите git remote -v
  4. Запустить git push origin master

Теперь ваш код должен быть на GitHub

Для получения дополнительной информации Добавление удаленного репозитория


объяснение

Push-код означает, что git проанализирует различия ваших локальных коммитов и удаленных файлов и отправит их для записи по восходящему потоку. Когда нажмите «Успешно», ваш локальный репозиторий и удаленный репозиторий синхронизируются, а другие пользователи могут видеть ваши коммиты.

Более подробную информацию о концепциях «вверх по течению» и «вниз по течению» см. В примечаниях .

Форсирование

Иногда, когда у вас есть локальные изменения, несовместимые с удаленными изменениями (т. Е. Когда вы не можете переадресовать удаленную ветку, или удаленная ветвь не является прямым предком вашей локальной ветви), единственный способ подтолкнуть ваши изменения - это принудительное нажатие ,

git push -f

или же

git push --force

Важные заметки

Это перезапишет любые удаленные изменения, и ваш пульт будет соответствовать вашему локальному.

Внимание: использование этой команды может привести к потере коммитов удаленного хранилища. Более того, настоятельно рекомендуется отказаться от принудительного нажатия, если вы делитесь этим удаленным репозиторием с другими, поскольку их история сохранит каждый перезаписанный фиксатор, тем самым нарушив их работу от синхронизации с удаленным репозиторием.

Как правило, только принудительное нажатие, когда:

  • Никто кроме вас не вытащил изменения, которые вы пытаетесь переписать
  • Вы можете заставить всех клонировать новую копию после принудительного толчка и заставить всех применить к ней свои изменения (люди могут вас ненавидеть).

Нажмите конкретный объект на удаленную ветвь

Общий синтаксис

git push <remotename> <object>:<remotebranchname>

пример

git push origin master:wip-yourname

wip-yourname вашу основную ветвь к ветке происхождения wip-yourname (большую часть времени, клонированный вами репозиторий).


Удалить удаленную ветку

Удаление удаленной ветви - это эквивалент нажатия на пустой объект.

git push <remotename> :<remotebranchname>

пример

git push origin :wip-yourname

wip-yourname удаленную ветку wip-yourname

Вместо использования двоеточия вы также можете использовать флаг -delete, который лучше читается в некоторых случаях.

пример

git push origin --delete wip-yourname

Нажимать одиночную фиксацию

Если в вашей ветке есть одна фиксация, которую вы хотите нажать на пульт, не нажимая ничего, вы можете использовать следующее

git push <remotename> <commit SHA>:<remotebranchname>

пример

Предполагая, что история git подобна этой

eeb32bc Commit 1 - already pushed
347d700 Commit 2 - want to push
e539af8 Commit 3 - only local
5d339db Commit 4 - only local

для того чтобы нажать только commit 347d700 на удаленный мастер, используйте следующую команду

git push origin 347d700:master

Изменение поведения push по умолчанию

Current обновляет ветку в удаленном репозитории, который имеет имя с текущей рабочей ветвью.

git config push.default current

Простое нажатие на ветвь вверх по течению, но не будет работать, если ветвь вверх по течению называется чем-то другим.

git config push.default simple

Восходящий поток подталкивает к ветке вверх по течению, независимо от того, что она называется.

git config push.default upstream

Соответствие подталкивает все ветви, которые соответствуют локальному и удаленному git config push.default upstream

После того, как вы установили предпочтительный стиль, используйте

git push 

для обновления удаленного репозитория.

Push-теги

git push --tags

Выталкивает все git tags в локальном репозитории, которые не находятся в удаленном.



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow