Подтвердить что ты не робот

Git push не отправлять изменения в удаленный репозиторий git

Я вношу изменения в какой-либо файл в локальном репозитории git, а затем хочу отправить изменения в удаленный репозиторий git, из которого локально был клонирован через ssh.

После запуска "git commit -a" на моей локальной стороне, чтобы отправить изменения на пульт, я запустил

$ git push
Everything up-to-date

Однако я проверил удаленные файлы, и они не изменены! Любая идея?

Спасибо и приветствую!

4b9b3361

Ответ 1

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

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

git checkout <whatever branch you’re on>

Там вы идете. В следующий раз просто вдавите в голые репозитории.:)

Ответ 2

Вы пробовали следующее?

 $ git push origin master:master

Ответ 3

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

git add .

а затем

git commit -m "updates done by..."

а затем

git push origin <repo_name>

Надеюсь, это поможет кому-то;)

Ответ 4

У меня была такая же проблема, и это было потому, что я проверил точку в истории (в данном случае тег), а не конец (head) любой ветки или мастера. Я бы сделал изменения и фиксацию, которые будут успешными, и я увижу изменения в моей местной истории. Когда я запустил git push, git заявил, что все в порядке, но это изменение не было отправлено на сервер (это можно увидеть, проверив журналы или повторно клонировав репо и проверив его журналы). Лучшим симптомом этой ошибки является сообщение "Head detatched from ____"

Решение

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

git branch [a new branch name]
git checkout [a new branch name]  

Затем, после внесения изменений, если вы хотите, чтобы изменения были перенесены на сервер, вам нужно направить ветвь на сервер.

git push -u origin [local branch name]

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

git checkout [branch name]  

Ответ 5

git commit --amend

Изменит commit ID и сделает удаленный репозиторий "думаю", что были сделаны новые изменения.

Ответ 7

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

Чтобы просмотреть изменения в другом типе удаленного репозитория:

а. Если ваш удаленный репозиторий голый, вы можете найти файлы в удаленном репозитории ветки/ конфиг описание ГЛАВА крючки/ Информация/ объекты/ ссылки /

после нажатия новой фиксации файлы в каталоге objects/будут изменены.

В. Если ваш удаленный репозиторий не голый, type "git мастер проверки" И "git status" в удаленном репозитории, чтобы увидеть статус файла. Посмотрите, был ли изменен или удален какой-либо файл.

Ответ 8

Ни одно из этих решений не работало для меня, и коммиты появлялись на моем веб-сайте только после запуска GIT_WORK_TREE=/path/to/website git checkout -f. Если это ваш случай, вам нужно добавить "крючок" в конфигурацию git.

  • Перейдите в папку ваших крючков внутри папки git:

    cd ~/path/.git

    cd hooks

    nano post-receive

  • Запишите эту строку в файл после получения:

    GIT_WORK_TREE=/path/to/your/website/or/project/ git checkout -f

  • Наконец, вы должны изменить разрешения файла post-receive:

    chmod a+x post-receive

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

Ответ 9

[email protected] MINGW64 ~/Github/FunProjects (master)
$ git push origin master
Username for 'https://github.com': myusername
Password for 'https://[email protected]': mypassword
Everything up-to-date

Может ли кто-нибудь сказать мне, как это исправить? Я пробовал все.. force push, $ git push origin master: master, checkout, чтобы инициализировать repo.. ничего не работает, и мне нужно нажать обновленный код в файле main.cpp, Я сделаю это вручную, удалив все и повторно добавив его, но мне нужно знать, как это сделать обычным образом из git bash. Он просто не обнаруживает, что код в файле обновлен и продолжает сообщать мне, что все в актуальном состоянии.

Ответ 10

Я просто испытал подобное разочарование, когда не увидел, что мои изменения были воспроизведены на github. Как новый пользователь git, просто привыкший к использованию системы, я создал папку на своем компьютере, добавил ее, зафиксировал ее, нажал ее - без изменений. Я рассмотрел возможность того, что я не могу нажать пустой каталог, поэтому я создал пустой каталог в каталоге и повторил вышеописанные действия. Все лучше, изменение было мгновенно отражено в моем реестре github.

Ответ 11

Ну, это то, что у меня сработало

git stash

git pull

git add .

git commit -m "commit message"

git push

Ответ 12

Еще одна проблема может заключаться в том, что, хотя вы, возможно, использовали

git добавить свои-dirs

Вам необходимо запомнить файлы в каталогах

git commit -m'Добавить ваше сообщение 'your-dir/*

Затем добавьте нажатие git, чтобы нажать его на удаленный