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。
-
转到您的git文件夹中的hooks文件夹:
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
这将执行该命令,每次你推,更新你的远程项目提交。