我正在更改本地git存储库中的某个文件,然后想要将更改发送到远程git存储库,通过ssh从中克隆本地。
在我本地运行“git commit -a”后,要将更改发送到远程,我运行
$ git push
Everything up-to-date
但是我检查了远程文件并且没有更改! 有什么想法吗?
谢谢和问候!
答案 0 :(得分:22)
您是否尝试过以下操作?
$ git push origin master:master
答案 1 :(得分:19)
您可能会进入非裸存储库,即附加了工作副本的存储库。你不应该忽略警告git push
,如果它注意到这种情况就会给你。
无论如何,登录到远程计算机,切换到存储库并执行
git checkout <whatever branch you’re on>
你去吧。下次只推入裸存储库。 :)
答案 2 :(得分:10)
我发现问题是我没有将文件添加到更新以及消息中。我使用以下命令修复了这个问题:
git add .
然后
git commit -m "updates done by..."
然后
git push origin <repo_name>
希望这有助于某人;)
答案 3 :(得分:5)
我遇到了同样的问题,因为我已经检查了历史中的某个点(在这种情况下是标签),而不是任何分支或主人的结束(头部)。我会做出改变并提交哪些会成功,我会看到我当地历史的变化。当我运行git push时,git声明一切正常,但实际上并没有将更改提交给服务器(可以通过检查日志,或通过重新克隆repo并检查它的日志来查看)。这个错误的最佳症状是看到消息“头部从____分离”
实际需要做的事情(如果你已完成我所做的事情)是通过创建分支并在之前切换到该分支来创建一个新的开发线>做出改变。
git branch [a new branch name]
git checkout [a new branch name]
然后在提交更改后,如果要将更改推送到服务器,则需要将分支本身推送到服务器。
git push -u origin [local branch name]
现在,如果您克隆存储库,您应该会在日志中看到更改。但是,下次克隆存储库时,为了能够转到刚刚更改的那一点,您将需要检出该分支,因为您将默认位于主线上,该主线位于开发线的“更远”位置你分道扬。
git checkout [branch name]
答案 4 :(得分:2)
git commit --amend
将更改commit ID
并创建远程存储库&#34;思考&#34;已经做出了新的改变。
答案 5 :(得分:1)
我建议您考虑将gitosis用于hosting those git bare repositories。初始设置后,它真的很容易使用。
答案 6 :(得分:1)
在远程存储库中键入“git log”以查看它是否包含最新的提交。 如果没有,您应该检查本地存储库的配置以查看远程设置。
要查看远程存储库的不同类型的更改:
一个。如果您的远程存储库是裸的,您可以在远程存储库中找到这些文件 分支机构/ 配置 描述 头 钩/ 信息/ 对象/ 参考文献/
在推送新提交后,对象/目录中的文件将会更改。
B中。如果您的远程存储库是非裸的, 输入“git checkout master” 并在远程存储库中显示“git status”以查看文件状态。查看某个文件是否已被修改或删除。
答案 7 :(得分:1)
这些解决方案都不适用于我,只有在运行GIT_WORK_TREE=/path/to/website git checkout -f
后,提交才会显示在我的实际网站上。如果是这种情况,你必须添加一个&#34; hook&#34;你的git配置。
转到git文件夹中的hooks文件夹:
cd ~/path/.git
cd hooks
nano post-receive
在收件后文件中写下此行:
GIT_WORK_TREE=/path/to/your/website/or/project/ git checkout -f
最后,您必须修改接收后文件的权限:
chmod a+x post-receive
每次推送,更新远程项目的提交时,都会执行该命令。
答案 8 :(得分:0)
我刚刚经历了一次同样令人沮丧的事情,即没有看到我在github上复制的更改。 作为一个新的git用户,只是习惯了使用系统,我在我的计算机上创建了一个文件夹,添加它,提交它,推送它 - 没有变化。 我考虑过无法推送空目录的可能性,所以我在目录中创建了一个空文件,然后重复上述步骤。 更好的是,这个变化立刻反映在我的github回购中。
答案 9 :(得分:0)
嗯,这就是对我有用的
git stash
git pull
git add .
git commit -m "commit message"
git push
答案 10 :(得分:0)
一种解决方案是删除遥控器并重新插入,仅重置您的本地树和预设。当我手动移动文件夹时,会发生此问题。
要删除您的遥控器:
$ git stash
然后:
$ git remote rm <REMOTE NAME>
即git remote rm origin
。
再次添加您的遥控器:
$ git remote add origin <URL>
答案 11 :(得分:0)
我和新的git / github用户完全一样。 您必须将其写入命令行:
final float viewWidth = getImageViewWidth(mImageView);
final float viewHeight = getImageViewHeight(mImageView);
final int drawableWidth = drawable.getIntrinsicWidth();
final int drawableHeight = drawable.getIntrinsicHeight();
mBaseMatrix.reset();
final float widthScale = viewWidth / drawableWidth;
final float heightScale = viewHeight / drawableHeight;
float scale = Math.max(widthScale, heightScale);
mBaseMatrix.postScale(scale, scale);
mBaseMatrix.postTranslate((viewWidth - drawableWidth * scale) / 2F,(viewHeight - drawableHeight * scale)/ 2F);
那应该可以解决您的问题。
答案 12 :(得分:0)
我遇到了同样的问题,我尝试了几件事情,但都没有奏效。
最后,我添加了一个虚拟提交并再次推送了更改,现在我可以在 GitHub 远程存储库上看到两者(前一个和虚拟提交)。
答案 13 :(得分:0)
有时它只是由于加载问题而发生。尝试直接在另一个新选项卡中打开分支菜单中的链接。这对我有用。
答案 14 :(得分:0)
因为我在使用 NetworkManager 的 CentoS 7 上遇到了类似的问题。 ping git 服务器有响应,连接netcat (nc) 也有响应,甚至尝试连接ssh 也有效。但是 git 命令一直挂着。
最终结果是,/etc/hosts
中的条目指向了一个无法访问的错误 IP 地址,而不是使用 NetworkManager 及其 DNS 设置来解析 git 服务器。
答案 15 :(得分:-1)
另一个问题可能是你可能已经使用了
git add your-dirs
您必须记住在目录
中提交文件git commit -m'添加您的消息' your-dir / *
然后添加git push以将其推送到远程