Как вы нажимаете только одну ветвь Git (и никаких других ветвей)?

Я работаю в локальном репозитории git. Есть две ветки: master и feature_x.

Я хочу нажать feature_x на удаленное репо, но не хочу вносить изменения в ветвь master.

Работает ли git push origin feature_x из моей ветки feature_x (ветвь feature_x на удаленном компьютере)?

Я не хочу тестировать это на своем ящике, потому что сейчас я не могу заставить его освоить.

Ответ 1

да, просто выполните следующие действия

git checkout feature_x
git push origin feature_x

Ответ 2

По умолчанию git push обновляет все удаленные ветки. Но вы можете настроить git для обновления только текущей ветки до него.

git config push.default upstream

Это означает, что git будет обновлять только текущую (выданную) ветвь, когда вы выполняете git push.

Другие допустимые параметры:

  • nothing: не нажимайте ничего (ошибка), если явно не указано refspec. Это в первую очередь предназначено для людей, которые хотят избежать ошибок, всегда будучи явными.
  • matching: нажмите все ветки с одним и тем же именем на обоих концах. (опция по умолчанию до версии 1.7.11)
  • upstream: нажмите текущую ветвь на верхний филиал. Этот режим имеет смысл только в том случае, если вы нажимаете на тот же репозиторий, из которого вы обычно извлекаете (т.е. центральный рабочий процесс). Не нужно иметь одно и то же имя для локальной и удаленной ветки.
  • tracking: Устаревший, используйте upstream вместо этого.
  • current: нажмите текущую ветку на удаленную ветвь с тем же именем на принимающей стороне. Работает как в центральных, так и в нецентральных рабочих процессах.
  • simple: [доступно с версии 1.7.11] в централизованном рабочем процессе, работайте как upstream с дополнительной безопасностью, чтобы отказаться от нажатия, если имя ветки восходящего потока отличается от локального. При нажатии на дистанционный пульт, отличный от пульта дистанционного управления, который вы обычно извлекаете, работайте как current. Это самый безопасный вариант и подходит для начинающих. Этот режим стал по умолчанию в git 2.0.

Ответ 3

Незначительное обновление Karthik Bose answer - вы можете настроить git глобально, чтобы повлиять на все ваши рабочие области таким образом:

git config --global push.default upstream

Ответ 4

Итак, скажем, у вас есть локальная ветвь foo, удаленный источник и источник удаленной ветки/мастер.

Чтобы подтолкнуть содержимое foo к исходному/ведущему, сначала нужно установить его вверх по течению:

git checkout foo
git branch -u origin/master

Затем вы можете нажать на эту ветку, используя:

git push origin HEAD:master

В последней команде вы можете добавить --force, чтобы заменить всю историю origin/master на foo.