当前位置:  开发笔记 > 运维 > 正文

git push不会将更改发送到远程git存储库

如何解决《gitpush不会将更改发送到远程git存储库》经验,为你挑选了4个好方法。

我正在更改本地git存储库中的某个文件,然后想要将更改发送到远程git存储库,通过ssh从中克隆本地.

在我本地运行"git commit -a"后,为了将更改发送到远程,我运行

$ git push
Everything up-to-date

但是,我检查了远程文件,它们没有更改!任何的想法?

感谢致敬!



1> knittl..:

你试过以下吗?

 $ git push origin master:master



2> Bombe..:

您可能会进入非裸存储库,即附加了工作副本的存储库.git push如果它注意到这种情况,你不应该忽略警告.

无论如何,登录到远程计算机,更改到存储库并执行

git checkout 

你去吧 下次只推入裸存储库.:)


我设法像你说的那样解决了这个问题,但我仍然感到困惑,不明白我在做什么.非裸是否意味着我可以直接编辑存储库中的文件而裸露意味着存储库中的文件不允许编辑?什么样的警告git push,我没注意到?谢谢!
"裸"存储库是没有工作副本的存储库,即您无法编辑其中的任何文件.存储库路径直接包含通常位于非裸存储库的`.git`文件夹中的所有内容,实际上裸存储库仅包含此文件夹.当推送到非裸存储库时,您*不*更改当前已检出的文件.您需要单独更新工作代码,例如使用`git checkout`或`git reset`.

3> rupi..:

我发现问题是我没有将文件添加到更新以及消息中.我通过使用以下命令修复此问题:

git add .

然后

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

然后

git push origin 

希望这有助于某人;)



4> Programster..:

我遇到了同样的问题,这是因为我签出了历史记录中的某个点(在这种情况下为标签),而不是任何分支或母版的结尾(头)。我将进行更改并提交成功,然后在本地历史记录中查看更改。当我运行git push时,git表示一切都很好,但是更改实际上并未提交到服务器(可以通过检查日志或重新克隆仓库并检查日志来查看)。此错误的最佳症状是看到消息“从____卸下头部”

解决方案

实际需要做的(如果您已完成我的工作)是通过创建分支并在进行更改之前切换到该分支来创建新的开发线。

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

然后,在提交更改后,如果要将更改推送到服务器,则需要将分支本身推送到服务器。

git push -u origin [local branch name]

现在,如果您克隆存储库,则应该在日志中看到所做的更改。但是,下一次克隆存储库时,要转到刚刚更改的位置,您将需要检出该分支,因为您默认将位于开发线“更远”的主线上。你分支了。

git checkout [branch name]  

推荐阅读
保佑欣疼你的芯疼
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有