git推送不发送到远程git存储库的变化

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

在我的本地运行“git commit -a”之后,我将运行发送到远程的更改

$ git push Everything up-to-date 

但是我检查了远程文件,并没有改变! 任何想法?

感谢致敬!

您可能会推入一个非裸存储库,即有一个工作副本连接到它的存储库。 如果注意到这种情况,你不应该忽略git push给你的警告。

无论如何,login到远程机器,切换到存储库,然后执行

 git checkout <whatever branch you're on> 

你走了 下次只会推入裸仓库。 🙂

你有尝试过以下吗?

  $ git push origin master:master 

我有同样的问题,这是因为我已经检查了历史 (在这种情况下是一个标签),而不是任何分支或主人的最终(头)。 我会做出改变,并承诺将成功,我会看到我的本地历史的变化。 当我运行git push的时候,git声明一切正常,但是这个修改并没有被提交到服务器(这可以通过检查日志,或者通过重新克隆repo并检查它的日志来看到)。 这个错误的最好的症状是看到“从____开始头”

解决scheme

实际上需要做什么(如果你已经完成了我所做的)就是通过创build一个分支并在进行更改之前切换到该分支来创build新的开发线。

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

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

 git push -u origin [local branch name] 

现在,如果您克隆存储库,则应该在日志中看到您的更改。 然而,下一次你克隆版本库时,为了能够到达刚刚更改的那一点,你将需要检出该分支,因为你将默认处于“进一步”下降的主线上你分手了。

 git checkout [branch name] 

我发现问题是我没有将文件添加到更新以及消息。 我通过使用下面的命令解决了这个问题:

 git add . 

接着

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

接着

 git push origin <repo_name> 

希望这可以帮助别人;)

我build议你看看使用gitosis来托pipe那些git仓库 。 初始设置后使用起来非常简单。

在远程仓库中input“git log”来查看它是否包含最新的提交。 如果没有,你应该检查你的本地仓库的configuration来查看远程设置。

要查看远程存储库不同types的更改,请执行以下操作:

答:如果你的远程仓库是裸露的,你可以在远程仓库中find这些文件branches / config描述HEAD钩子/ info / objects / refs /

在新的提交被推后,对象/目录中的文件将改变。

B.如果您的远程存储库不是裸露的,请在远程存储库中input“git checkout master”和“git status”以查看文件状态。 看看是否有一些文件已被修改或删除。

另一个问题可能是你可能已经使用了

git添加你的dirs

你必须记住提交目录中的文件

git commit -m'添加你的信息' your-dir / *

然后添加一个git push来推送到你的远程

我刚刚经历了一个同样令人沮丧的事情,没有看到我的变化在github上复制。 作为一个新的git用户,只要习惯了使用系统,我在我的电脑上创build了一个文件夹,添加了它,承诺它,推它 – 没有改变。 我考虑过我不能推空目录的可能性,所以我在目录中创build了一个空文件,然后重复上述步骤。 更好的是,这个变化立即被镜像在我的github仓库中。

 git commit --amend 

将更改commit ID ,并使远程存储库“思考”已作出新的更改。

 Ani@DESKTOP-5UKCE0Q MINGW64 ~/Github/FunProjects (master) $ git push origin master Username for 'https://github.com': myusername Password for 'https://myusername@github.com': mypassword Everything up-to-date 

有人能告诉我如何解决这个问题吗? 我试了一切..强制推,$ git推起源大师:主,结帐,初始化回购..没有任何工作,我需要在main.cpp文件推送更新后的代码 。 我会手动删除所有内容并重新添加它,但我需要知道如何以正常的方式从git bash中执行此操作。 它只是没有检测到文件内的代码已经更新,并不断告诉我一切都是最新的。

这些解决scheme都不适用于我,只有在运行GIT_WORK_TREE=/path/to/website git checkout -f后,提交才会出现在我的实时网站上。 如果这是你的情况,你必须添加一个“钩子”你的gitconfiguration。

  1. 转到您的git文件夹中的hooks文件夹:

    cd ~/path/.git

    cd hooks

    nano post-receive

  2. 在接收后的文件中写下这一行:

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

  3. 最后,你必须修改post-receive文件的权限:

    chmod a+x post-receive

这将执行该命令,每次你推,更新你的远程项目提交。