我是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://***'
有人知道为什么吗?
答案 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)
请阅读帖子的其余部分。问题是两个中的一个:
有些文件未提交或未添加*
创建新文件并提交@命令行时,它不会像在git extensiosn UI中那样自动添加它们。你需要添加所有(或一些)即git add --all(或一些路径和文件)
您的本地存储库未与远程(源)同步。在推送之前进行提取和合并或拉取。 (如果你有没有添加的文件阻止你进行合并,你会收到另一个错误。只需确保添加所有文件,然后从原点合并,所有文件都应该有效)