Git 成功拉取后新提交被远程拒绝
Git remote rejected on new commit after successful pull
git 的新用户,我是 运行 一个可通过 cpanel 访问的网站。通常使用 FTP 但注意到 git 选项所以试一试。
将我的 public_html 目录设置为 git 远程目录,将本地存储库克隆到我的笔记本电脑上(尽管没有任何内容被复制到我的本地目录,这是另一个问题。)
现在我正在设置并完成了一些提交并成功推送,但是 运行 现在遇到了一个问题,每次我提交和推送时我都会得到这个响应 -
[remote rejected] master -> master (Working directory has unstaged changes)
error: failed to push some refs to 'ssh://mywebsite/public_html/'
我已经使用 git reset --hard origin/master
重置,我可以成功地获取、拉取和推送,没有任何错误。
PC MINGW64 ~/Desktop/mywebsite (master)
$ git pull
Already up to date.
$ git push
Everything up-to-date
所以我创建了一个文件用于测试,git_commands.txt
$ git status
On branch master
Your branch is up to date with 'origin/master'.
Untracked files:
(use "git add <file>..." to include in what will be committed)
git_commands.txt
nothing added to commit but untracked files present (use "git add" to track)
$ git add .
$ git commit -m "added git_command.txt"
[master 695416e] added git_command.txt
1 file changed, 1 insertion(+)
create mode 100644 git_commands.txt
$ git push
Enumerating objects: 4, done.
Counting objects: 100% (4/4), done.
Delta compression using up to 8 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 405 bytes | 405.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
To ssh://mywebsite/public_html/
! [remote rejected] master -> master (Working directory has unstaged changes)
error: failed to push some refs to 'ssh://mywebsite/public_html/'
任何帮助将不胜感激,似乎我所做的一切都会在我尝试推动时立即出现上述错误,即使在表面上我都是 'up to date'。
! [remote rejected] master -> master (Working directory has unstaged changes)
这告诉您 位于 ssh://mywebsite/public_html/
的远程存储库 在其工作目录中有未暂存的更改。转到该存储库并删除或提交这些更改。
通常远程存储库是“裸”的;他们没有签出任何文件。将提交推送到裸存储库很简单。
“非裸”存储库已签出文件。推送时,您同时更新了存储库和签出的文件。如果结帐中没有更改,这还可以,Git 可以将结帐更新为新提交。
如果远程签出中有未提交的更改并且您推送,那将是一个非常混乱的情况。想象一下,您正在处理 public_html 结帐,而其他人正在推动它;突然间,毫无征兆,你身下的一切都变了。 Git 拒绝让这种情况发生。
出于这个原因以及其他原因,git push
是一个糟糕的发布机制。使用 SFTP、FTPS 或 SCP 发送您的更改。
你可以试试:
git pull --rebase origin master
git 推 --all
enter image description here
git 的新用户,我是 运行 一个可通过 cpanel 访问的网站。通常使用 FTP 但注意到 git 选项所以试一试。
将我的 public_html 目录设置为 git 远程目录,将本地存储库克隆到我的笔记本电脑上(尽管没有任何内容被复制到我的本地目录,这是另一个问题。)
现在我正在设置并完成了一些提交并成功推送,但是 运行 现在遇到了一个问题,每次我提交和推送时我都会得到这个响应 -
[remote rejected] master -> master (Working directory has unstaged changes)
error: failed to push some refs to 'ssh://mywebsite/public_html/'
我已经使用 git reset --hard origin/master
重置,我可以成功地获取、拉取和推送,没有任何错误。
PC MINGW64 ~/Desktop/mywebsite (master)
$ git pull
Already up to date.
$ git push
Everything up-to-date
所以我创建了一个文件用于测试,git_commands.txt
$ git status
On branch master
Your branch is up to date with 'origin/master'.
Untracked files:
(use "git add <file>..." to include in what will be committed)
git_commands.txt
nothing added to commit but untracked files present (use "git add" to track)
$ git add .
$ git commit -m "added git_command.txt"
[master 695416e] added git_command.txt
1 file changed, 1 insertion(+)
create mode 100644 git_commands.txt
$ git push
Enumerating objects: 4, done.
Counting objects: 100% (4/4), done.
Delta compression using up to 8 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 405 bytes | 405.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
To ssh://mywebsite/public_html/
! [remote rejected] master -> master (Working directory has unstaged changes)
error: failed to push some refs to 'ssh://mywebsite/public_html/'
任何帮助将不胜感激,似乎我所做的一切都会在我尝试推动时立即出现上述错误,即使在表面上我都是 'up to date'。
! [remote rejected] master -> master (Working directory has unstaged changes)
这告诉您 位于 ssh://mywebsite/public_html/
的远程存储库 在其工作目录中有未暂存的更改。转到该存储库并删除或提交这些更改。
通常远程存储库是“裸”的;他们没有签出任何文件。将提交推送到裸存储库很简单。
“非裸”存储库已签出文件。推送时,您同时更新了存储库和签出的文件。如果结帐中没有更改,这还可以,Git 可以将结帐更新为新提交。
如果远程签出中有未提交的更改并且您推送,那将是一个非常混乱的情况。想象一下,您正在处理 public_html 结帐,而其他人正在推动它;突然间,毫无征兆,你身下的一切都变了。 Git 拒绝让这种情况发生。
出于这个原因以及其他原因,git push
是一个糟糕的发布机制。使用 SFTP、FTPS 或 SCP 发送您的更改。
你可以试试:
git pull --rebase origin master
git 推 --all
enter image description here