提交已经推送但仍保留在本地存储库中

时间:2013-01-21 01:59:19

标签: git

我是Git的新手。我已经成功推送并合并了两个提交。但是当我检查git状态时,它仍然说

$ git status
# On branch master
# Your branch is ahead of 'origin/master' by 2 commits.
#
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)

no changes added to commit (use "git add" and/or "git commit -a")

git push之后的输出(***是公司Git服务器地址,在下面忽略):

$ git push
Total 0 (delta 0), reused 0 (delta 0)
remote: Processing changes: refs: 1, done
To ssh://***
 ! [remote rejected] master -> refs/for/master (no new changes)
error: failed to push some refs to 'ssh://***'

有人知道为什么吗?

2 个答案:

答案 0 :(得分:1)

提及refs/for/master的错误消息表明您正在推送到Gerrit code review服务器。虽然Gerrit是完全兼容的Git服务器,但它有特殊的规则要遵循。

请参阅Gerrit文档,了解如何正确submit code reviews

可能更好的想法是询问贵公司的Git / Gerrit管理员如何正确上传您的提交。

在任何情况下,请注意您上传到Gerrit的更改不会成为正式(并且不会移动origin/master分支),直到有人使用Gerrit Web界面批准这些更改。

在Gerrit批准后,您应该能够在下次git fetch(或repo sync)时看到更改。

答案 1 :(得分:0)

请阅读帖子的其余部分。问题是两个中的一个:

  1. 有些文件未提交或未添加*

    创建新文件并提交@命令行时,它不会像在git extensiosn UI中那样自动添加它们。你需要添加所有(或一些)即git add --all(或一些路径和文件)

  2. 您的本地存储库未与远程(源)同步。在推送之前进行提取和合并或拉取。 (如果你有没有添加的文件阻止你进行合并,你会收到另一个错误。只需确保添加所有文件,然后从原点合并,所有文件都应该有效)

相关问题