Я пытаюсь обновить репозиторий Git на GitHub. Я внес кучу изменений, добавил их, зафиксировал, а затем попытался сделать git push
. В ответе говорится, что все обновлено, но это явно не так.
git remote show origin
отвечает репозиторием, которого я ожидал.
Почему Git сообщает мне, что репозиторий обновлен, когда есть локальные коммиты, которые не видны в репозитории?
[searchgraph] git status
# On branch develop
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# Capfile
# config/deploy.rb
nothing added to commit but untracked files present (use "git add" to track)
[searchgraph] git add .
[searchgraph] git status
# On branch develop
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# new file: Capfile
# new file: config/deploy.rb
#
[searchgraph] git commit -m "Added Capistrano deployment"
[develop 12e8af7] Added Capistrano deployment
2 files changed, 26 insertions(+), 0 deletions(-)
create mode 100644 Capfile
create mode 100644 config/deploy.rb
[searchgraph] git push
Everything up-to-date
[searchgraph] git status
# On branch develop
nothing to commit (working directory clean)
Ответы:
git push
не проталкивает все ваши локальные ветки: как он узнает, в какие удаленные ветки их отправить? Он отправляет только локальные ветки, которые были настроены для отправки в конкретную удаленную ветку.В моей версии Git (1.6.5.3), когда я запускаю,
git remote show origin
он фактически распечатывает, какие ветки настроены для push:В. Но я мог бы продолжить,
master
не беспокоясь обо всем этом!Когда вы
git clone
по умолчанию настраиваете локальнуюmaster
ветвь для отправки в удаленнуюmaster
ветку (локально называемуюorigin/master
), поэтому, если вы только фиксируетеmaster
, то простойgit push
всегда будет возвращать ваши изменения.Однако, судя по опубликованному вами фрагменту вывода, вы находитесь в ветке с именем
develop
, которая, как я предполагаю, не была настроена для отправки ни на что. Таким образом,git push
без аргументов мы не будем отправлять коммиты в эту ветку.Когда он говорит «Все обновлено», это означает «все ветки, которые вы мне рассказывали, как отправлять, обновлены».
В. Итак, как я могу отправить свои коммиты?
Если вы хотите поместить свои изменения из
develop
вorigin/master
, то вам, вероятно, следует объединить их в свой локальный, аmaster
затем нажать на это:Если вы хотите создать
develop
ветвь на пульте дистанционного управления, отдельно отmaster
, а затем предоставить аргументы дляgit push
:Это: создаст новую ветку на удаленном компьютере
develop
; и обновите эту ветку в своем местномdevelop
филиале; и набор ,develop
чтобы подтолкнуть кorigin/develop
так , что в будущем,git push
без аргументов будет толкатьdevelop
автоматически.Если вы хотите переместить локальный компьютер
develop
в удаленную ветку, называемую чем-то другимdevelop
, то вы можете сказать:Однако эта форма не будет настроена
develop
на постоянную отправкуorigin/something-else
в будущем; это одноразовая операция.источник
git push origin x
все еще не настраивалась ветка x для отправки в будущем. Это произошло из-за определенного pushspec в.gitconfig
[remote "origin"]
разделе, который вызывал поведение git.git push origin
меня была эта проблема, используя ваш примерgit push origin develop
и разместив его в моей основной ветке,git push origin master
проблема была решена, спасибоЭто случилось со мной, когда мое приложение SourceTree вылетело во время постановки. А в командной строке казалось, что предыдущее
git add
было повреждено. В этом случае попробуйте:По последней команде вам может потребоваться установить ветку.
Имейте в виду, что этого достаточно, если вы не делали никаких ветвлений или чего-либо подобного. В этом случае убедитесь, что вы нажимаете правильную ветку, например
git push origin develop
.источник
Пытаться:
источник
Пожалуйста, попробуйте перейти к последней фиксации и сделайте это
git push origin HEAD:master
.источник
Push the current branch to the remote ref matching master in the origin repository. This form is convenient to push the current branch without thinking about its local name.
git push
: / Это работает для меня , а также:git push origin HEAD:my_branch_name
.В моем случае ни одно другое решение не помогло. Мне пришлось сделать резервную копию новых измененных файлов (обозначенных значком
git status
) и запустить файлgit reset --hard
. Это позволило мне перенастроить удаленный сервер. Добавление новых измененных файлов и запускСделал свое дело. Надеюсь, это кому-то поможет, как «последний шанс».
источник
Прямо сейчас он выглядит так, как будто вы находитесь в ветке разработки. У вас есть ветка разработки на вашем origin? Если нет, попробуйте
git push origin develop
.git push
будет работать, как только он узнает о ветке разработки в вашем источнике.В качестве дальнейшего чтения я бы посмотрел на страницы руководства git-push , в частности, на раздел примеров.
источник
Чтобы быть конкретным, если вы хотите объединить что-то для освоения, вы можете выполнить следующие шаги.
Обычно в модели запроса на вытягивание создается новая локальная ветвь, а затем эта ветка отправляется удаленно. Для этого вам нужно указать, куда вы хотите отправить свои изменения на удаленном компьютере. Вы можете сделать это, указав удаленный во время нажатия.
Если вы хотите создать ветку, отличную от имени вашей локальной ветки, вы можете сделать это с помощью следующей команды.
источник
Спасибо Сэму Стоуксу. Судя по его ответу, вы можете решить проблему другим способом (я использовал этот способ). После обновления каталога разработки вы должны повторно инициализировать его.
Затем вы можете зафиксировать и отправить обновления в мастер
источник
git init
и откройте новую вкладку команд, введите:git push origin branch_name
Это случилось со мной, когда я
^C
находился посредиgit push
GitHub. Однако GitHub не показал, что изменения были внесены.Чтобы исправить это, я внес изменения в свое рабочее дерево, зафиксировал его и снова нажал. Он работал отлично.
источник
Это случилось со мной. Я просто повторно зафиксировал изменения, а затем нажал.
источник
Я пробовал много методов, включая определенные здесь. Что у меня есть,
Убедитесь, что имя репозитория правильное. Лучше всего скопировать ссылку с сайта репозитория и вставить в git bash.
Убедитесь, что вы зафиксировали выбранные файлы.
Если оба шага не работают, попробуйте
git push -u -f origin master
источник
Вместо этого вы можете попробовать следующее. Вам не нужно идти
master
; вы можете напрямую принудительно отправить изменения из самой ветки.Как объяснялось выше, когда вы выполняете перебазирование, вы меняете историю своей ветки. В результате, если вы попытаетесь выполнить обычную
git push
операцию после перебазирования, Git отклонит его, поскольку нет прямого пути от фиксации на сервере к фиксации в вашей ветке. Вместо этого вам нужно использовать флаг-f
или,--force
чтобы сообщить Git, что да, вы действительно знаете, что делаете. При выполнении принудительных нажатий настоятельно рекомендуется установить дляpush.default
параметра конфигурации значение simple, которое является значением по умолчанию в Git 2.0. Чтобы убедиться, что ваша конфигурация верна, запустите:Как только все будет правильно, вы можете просто запустить:
И проверьте свой запрос на перенос. Его надо обновить!
Для получения более подробной информации перейдите к нижней части раздела « Как изменить базу запроса на слияние» .
источник
Это случилось со мной, когда я попытался нажать из новой ветки и использовал
git push origin master
вместо этого. Вам следует либо:git push origin your_new_branch
если вы хотите, чтобы эта ветвь тоже происходила в удаленном репо.git merge origin master
.источник
Попробуйте
git add -A
вместоgit add .
источник
источник