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

Tim*_*Tim 41 git push

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

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

$ git push
Everything up-to-date
Run Code Online (Sandbox Code Playgroud)

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

感谢致敬!

kni*_*ttl 21

你试过以下吗?

 $ git push origin master:master
Run Code Online (Sandbox Code Playgroud)


Bom*_*mbe 20

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

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

git checkout <whatever branch you’re on>
Run Code Online (Sandbox Code Playgroud)

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

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

rup*_*upi 12

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

git add .
Run Code Online (Sandbox Code Playgroud)

然后

git commit -m "updates done by..."
Run Code Online (Sandbox Code Playgroud)

然后

git push origin <repo_name>
Run Code Online (Sandbox Code Playgroud)

希望这有助于某人;)


Pro*_*ter 5

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

解决方案

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

git branch [a new branch name]
git checkout [a new branch name]  
Run Code Online (Sandbox Code Playgroud)

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

git push -u origin [local branch name]
Run Code Online (Sandbox Code Playgroud)

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

git checkout [branch name]  
Run Code Online (Sandbox Code Playgroud)


Nir*_*uan 5

git commit --amend
Run Code Online (Sandbox Code Playgroud)

将更改commit ID并使远程存储库“认为”已经进行了新的更改。