У меня есть удаленный сервер gitosis и локальный репозиторий git, и каждый раз, когда я делаю большие изменения в своем коде, я также отправляю изменения на этот сервер.
Но сегодня я обнаружил, что, несмотря на некоторые локальные изменения и фиксацию в локальном репозитории, при запуске git push origin master
он говорит «Все актуально», но когда я использую git clone
для извлечения файлов на удаленном сервере, он не содержит последних изменений , И у меня есть только одна ветка с именем "master" и один удаленный сервер с именем "origin".
PS: это то, что git отображает при запуске ls-remote
, я не уверен, помогает ли это
$ git ls-remote origin
df80d0c64b8e2c160d3d9b106b30aee9540b6ece HEAD
df80d0c64b8e2c160d3d9b106b30aee9540b6ece refs/heads/master
$ git ls-remote .
49c2cb46b9e798247898afdb079e76e40c9f77ea HEAD
df80d0c64b8e2c160d3d9b106b30aee9540b6ece refs/heads/master
df80d0c64b8e2c160d3d9b106b30aee9540b6ece refs/remotes/origin/master
3a04c3ea9b81252b0626b760f0a7766b81652c0c refs/tags/stage3
commit
которую я не заметил, и пытался вставить кодОтветы:
Вы работаете с отстраненной головой случайно?
Как в:
показывая, что ваш последний коммит не является главой ветки.
Предупреждение : следующее
git reset --hard
: убедитесь, чтоgit stash
сначала используете, если хотите сохранить измененные в данный момент файлы.Как упомянуто на
git checkout
странице руководства (выделено мое):источник
Step 1: git fetch origin git checkout -b "nodeAPI" "origin/nodeAPI" Step 2. Review the changes locally Step 3. Merge and fix conflicts git fetch origin git checkout "origin/master" git merge --no-ff "nodeAPI" Step 4. Push the result of the merge to GitLab git push origin "master"
я в порядке до последнего шага. Но сейчас я просто запутался, как двигаться вперед.git branch -f myBranch HEAD
затем оформите указанную ветку и нажмите на нее. В вашем случае,myBranch
может быть,master
если вы были в процессе слиянияnodeAPI
.Э-э-э ... Если вы мерзавец, вы уверены, что
git commit
раньшеgit push
? Я сделал эту ошибку в первый раз!источник
git commit -a -m "your message goes here"
в моем случаеgit add -A
,git diff --staged
, прокручивает изменения Хмм выглядит очень хорошо,git commit -m 'bam!'
,git push
Может быть, вы продвигаете новую местную ветку?
Новая локальная ветвь должна быть выдвинута явно:
Просто одна из тех вещей, связанных с git ... Вы клонируете репо, делаете ветку, вносите какие-то изменения, нажимаете ... "Все актуально". Я понимаю, почему это происходит, но этот рабочий процесс крайне недружественный для новичков.
источник
Моя проблема заключалась в том, что мое локальное отделение имело другое имя, чем удаленное. Я смог толкнуть, выполнив следующее:
$ git push origin local-branch-name:remote-branch-name
(Кредит https://penandpants.com/2013/02/07/git-pushing-to-a-remote-branch-with-a-different-name/ )
источник
Еще одна ситуация, о которой важно знать: своего рода состояние по умолчанию для git - это то, что вы работаете в «основной» ветке. И для многих ситуаций вы будете просто тусоваться в этом как ваша основная рабочая ветвь (хотя некоторые люди увлекаются и занимаются другими делами).
Во всяком случае, это только одна ветвь. Итак, ситуация, в которую я могу попасть:
Моя активная ветвь на самом деле НЕ является основной ветвью. ... Но я обычно делаю команду:
git push
(а я раньше делалgit push origin master
, так что это ярлык для ТО).Поэтому я обычно помещаю ветку master в общий репозиторий ... что в моем случае, вероятно, неплохо ...
Но я забыл, что изменения, над которыми я работал, еще не в ветке master !!!
Поэтому каждый раз, когда я пытаюсь
git push
, и вижу «Все в курсе», я хочу кричать, но, конечно, это не вина Гита! Это мое.Вместо этого я объединяю свою ветку с мастером, а затем делаю push, и все снова становится счастливым.
источник
git push
.объяснение
У меня была та же ошибка, и я часами пытался ее выяснить. Наконец я нашел это. Чего я не знал, так это того, что нажатие этой
git push origin branch-x
кнопки будет пытаться найти локальную ветвь-x, а затем - удаленную ветвь-x.В моем случае у меня было два удаленных URL. Я сделал проверку от Branch-X до Branch-Y, когда пытался передать с локального Y на удаленный X Я получил сообщение, что все в порядке, что является нормальным, потому что я нажимал на X второго пульта.
Короче говоря, чтобы не попасть в эту ловушку, вам нужно указать исходную ссылку и целевую ссылку:
Обновить:
Если вам нужно запускать эту команду каждый раз, когда вы отправляете свою ветку, вам может потребоваться установить восходящий поток между вашей локальной и удаленной веткой следующим образом:
Или
источник
Смотрите ответ VonC выше - мне нужен был дополнительный шаг:
Я сделал это, но когда я попытался
git push remoterepo master
, он сказал: «ошибка: не удалось нажать некоторые ссылки. Чтобы предотвратить потерю истории, обновления без ускоренной перемотки были отклонены, объедините удаленные изменения (например,« git pull ») перед толкать снова ".Так что я сделал 'git pull remoterepo master', и он обнаружил конфликт. Я сделал
git reset --hard <commit-id>
снова, скопировал конфликтующие файлы в резервную папку, сделалgit pull remoterepo master
снова, скопировал конфликтующие файлы обратно в мой проектgit commit
, затем сделалgit push remoterepo master
, и на этот раз это сработало.Гит перестал говорить «все актуально» - и перестал жаловаться на «быстрые форварды».
источник
Я столкнулся с подобной ситуацией; когда я внес изменения и попытался
git push origin master
это, он говорил, что все было в курсе.Я должен был
git add
изменить файл, а затемgit push origin master
. Это начало работать с тех пор.источник
git commit
добавлять этот файл перед нажатием?Из вашего статуса git вы, вероятно, отличаетесь от моей.
Но в любом случае, вот что случилось со мной .. Я столкнулся со следующей ошибкой:
Более информативным сообщением здесь является то, что пульт повесил трубку. Оказалось, что это связано с превышением размера HTTP-буфера постов. Решение состоит в том, чтобы увеличить его с
git config http.postBuffer 524288000
источник
У меня была эта проблема сегодня, и она не имела ничего общего с другими ответами. Вот что я сделал и как я это исправил:
Мой репозиторий недавно переехал, но у меня была локальная копия. Я отделился от своего локального «главного» филиала и внес некоторые изменения, а затем вспомнил, что хранилище перенесено. Я использовал
git remote set-url origin https://<my_new_repository_url>
для установки нового URL, но когда я нажимал, он просто говорил «Все в курсе» вместо того, чтобы подталкивать мою новую ветку к мастеру.Я закончил тем, что решил ее, перебрав на
origin/master
и затем подтолкнув с явными названиями веток, например так:Надеюсь, это поможет любому, у кого была такая же проблема!
источник
Очень редко - но все же: в Windows может быть, что упакованные ссылки имеют ветку с одним регистром букв (т.е. dev / mybranch), а ссылки папке есть другой регистр (то есть dev / mybranch), когда для core.ignorecase установлено значение true ,
Решение состоит в том, чтобы вручную удалить соответствующую строку из упакованных ссылок . Не нашел более чистого решения.
источник
Я столкнулся с этим сам, когда слил ветку на Github и продолжал развиваться в ней локально. Мое исправление немного отличалось от других, которые были предложены.
Сначала я разветвлял новую локальную ветку от моей старой локальной ветки (которую я не мог нажать). Затем я перенес новую локальную ветку на исходный сервер (Github). Т.е.
Это заставило изменения появиться на Github, хотя и в newlocalbranch, а не в oldlocalfranch.
источник
В моем случае у меня было 2 удаленных репо.
Оба репо были одинаковыми. Просто один был
https
другим былssh
. Таким образом, удаление ненужного (в моем случаеssh
. Поскольку я использовал,https
потому чтоssh
не работал!) Решило проблему для меня.источник
Моя ошибка отличалась от всего, что упоминалось ранее. Если вы не знаете, почему у вас оторванная голова, то, вероятно, нет. Я работал на автопилоте с
git commit
иgit push
и не читал вывод сgit commit
. Оказывается, это было сообщение об ошибке, потому что я забыл -am.Исправил это, поставив,
-am
где я обычно делаю:источник
Я столкнулся с той же проблемой. Как я не добавил изменения в области подготовки. И я напрямую попытался отправить код в удаленное хранилище с помощью команды:
git push origin master
И это показывает сообщение
Everything up-to-date
.чтобы решить эту проблему, попробуйте эти шаги
git add .
git commit -m "Bug Fixed"
git push -u origin master
источник
Убедитесь, что вы не указали свой удаленный URL.
Я просто хотел также упомянуть, что столкнулся с этим после включения Git в качестве CVS в локальной конфигурации сборки Jenkins. Похоже, что Дженкинс проверил самый последний коммит из ветви, которую я дал, а также сбросил свой пульт, чтобы он соответствовал путям, которые я дал ему в репо. Пришлось снова проверить мою ветку функций и исправить исходный URL-адрес с помощью 'git remote set-url'. Не направляйте инструмент сборки в свой рабочий каталог, иначе у вас будет плохое время. Для моего пульта был задан путь к файлу в моем рабочем каталоге, поэтому он, естественно, сообщал обо всем обновленном, когда я пытался отправить изменения с тем же источником и местом назначения.
источник
Другая возможность заключается в том, что вы назвали каталог в вашем файле .gitignore, который был исключен. Таким образом, новые коммиты не будут выдвинуты. Со мной случилось, что я назвал каталог, чтобы игнорировать «поиск», но это также был каталог в моем дереве исходных текстов.
источник
Есть быстрый способ, который я нашел. Перейдите в папку .git, откройте
HEAD
файл и измените любую ветвь, на которой вы были, обратно на master. Например, ссылка:refs/heads/master
источник
refs/heads/master
сломала мой репозиторий. Но установить его на то , что я думал, что ГОЛОВА коммит дал следующее сообщение:Warning: you are leaving 1 commit behind, not connected to any of your branches
. Я смог перенести коммит в новую ветку и объединить его с мастером.Я была такая же проблема. В моем случае это было вызвано необходимостью имен для одного и того же пульта. Он создал стандартную «origin», но я давно использовал «github» в качестве пульта, так что это тоже было там. Как только я удалил пульт «origin», ошибка исчезла.
источник
У меня было такое (коммиты в моем журнале git не были на GitHub, хотя git сказал, что все было в курсе), и я уверен, что проблема была в Github. Я не получил никаких сообщений об ошибках в git, но GitHub имел ошибки статуса, и мои коммиты были там через несколько часов.
https://status.github.com/messages
Сообщения о состоянии GitHub были:
источник
Еще одна очень простая, но нубийская ошибка: я просто забыл добавить
-m
модификатор сообщения в свой коммит. Итак, я написал:Вместо правильного:
ПРИМЕЧАНИЕ: он не выдает никаких ошибок! Но вы не сможете выдвинуть свои коммиты и всегда получите
Everything up to date
вместо этогоисточник
здесь мое решение отличается от вышеупомянутого. Я не понял, как эта проблема происходит, но я исправил ее. немного неожиданно
сейчас приходит путь:
команда, которая работает для меня
$git push origin HEAD:use_local_cache
(Надеюсь, вы, ребята, избавитесь от этой проблемы как можно скорее)
источник
Я знаю, что он очень старый, но в моем случае я исправил это довольно быстро.
Я получал эту же ошибку, будучи на один коммит вперед
master
. Затем я нашел текущий пост переполнения стека. Однако, прежде чем приступить к предложенным идеям, я просто решил сделать новый коммит и попробовать еще раз с толчком к началу, и это сработало гладко.Я не знаю почему, но, возможно, это будет полезно для кого-то еще.
источник
Другая возможность состоит в том, что у вас есть коммиты, которые не влияют на каталог, который вы нажимаете. Так что в моем случае у меня была такая структура
И я сделал коммит мастер модификации
README.md
, затем побежалgit subtree push --prefix client heroku-client master
и получил сообщениеEverything up-to-date
источник
Я работал с Jupyter-Notebook, когда столкнулся с этой обманчивой ошибкой.
Я не смог решить с помощью решений, представленных выше, так как у меня не было отдельного руководителя и не было разных имен для локального и удаленного репо.
Но у меня были файлы размером чуть больше 1 МБ, а самый большой - почти ~ 2 МБ . Я уменьшил размер файла с помощью Как я могу уменьшить размер файла моего ноутбука iPython?техника. Это помогло уменьшить размер моего файла, очистив выходные данные. Я был в состоянии выдвинуть код, теперь он принес мой размер файла в килобайтах.
источник
Нам нужно добавить файлы и зафиксировать уже измененные / добавленные файлы, выполнить приведенные ниже команды
мерзавец добавить. или git add nameoffile #it добавит существующие файлы в проект
git commit -m "первый коммит" # коммит всех файлов в проекте
мастер происхождения git push
источник