Поиск…
Вступление
После изменения, постановки и передачи кода с помощью 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
.
Нажатие на новый репозиторий
Чтобы нажать на репозиторий, который вы еще не создали, или пусто:
- Создайте репозиторий на GitHub (если применимо)
- Скопируйте указанный вами URL-адрес в форме
https://github.com/USERNAME/REPO_NAME.git
- Перейдите в локальный репозиторий и выполните
git remote add origin URL
- Чтобы проверить, что это было добавлено, запустите
git remote -v
- Чтобы проверить, что это было добавлено, запустите
- Запустить
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
в локальном репозитории, которые не находятся в удаленном.