GIT没有提交更改

时间:2011-11-06 09:24:36

标签: git

我是GIT和存储库的新手,所以我遇到了一个问题而且不知道我做错了什么

我不确定我做错了什么,但我做了以下

  1. 我将GIT回购克隆到我的徽标机器
  2. 我通过vim对服务器本身进行了一些更改,看看我想做的事情是否真的有效,哪些确实有用“可能这就是我的错误所在”
  3. 我在我的本地仓库中做了git pull以确保我拥有所有最新的提交
  4. 然后我在本地通过git status在本地进行了更改,它向我显示已修改了两个文件。然后我尝试git push推送我的更改,这显示了我所有已经更新的地方
  5. 然后我在本地提交我的文件git commit然后git push,现在git push实际做了一些事情,
  6. 当我登录到服务器时做了一个git status,它向我显示了2个被修改的文件,然后我去了git log,它显示了我在本地的提交,然后我重新提交文件服务器端和我的改变没有生效。
  7. 我做了git reset --hard HEAD,但我的更改仍未显示,
  8. 我做错了什么?

2 个答案:

答案 0 :(得分:1)

听起来你正在推送一个附有工作树的存储库。为避免出现问题,最好只推送使用git clone --bare(或等效的)创建的裸存储库。

如果你确实推送到非裸存储库,无论如何,你必须在服务器上执行以下命令。这将失去所有本地(未提交)更改。

git reset --hard HEAD
git checkout -f

答案 1 :(得分:0)

您必须将更改添加到索引中,然后提交它们。

git add modified_file
git add other_file
git commit -m "message"

使用索引构造下一个提交可以做一些事情,例如只添加修改后的文件中的一些更改(参见git-gui的Stage hunk菜单选项)。一旦索引具有正确的修改集,则git commit形成一个提交。 git push用于发送存储库包含的上游存储库中不存在的提交。因此,如果您当地没有新的提交,则不会做任何事情。