git push显示已经是最新的,即使有本地更改

时间:2014-07-03 14:43:21

标签: git github

我在尝试将新的更改从本地存储库推送到GitHub时遇到了问题。首先,我做了一个 git commit -a,然后git push origin master。这给了我错误:

 ! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to 'git@github.com:user/repo.git'
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes (e.g. 'git pull') before pushing again.  

所以我认为自从我上一次拉动后GitHub回购中发生了变化,然后我做了git pull origin master,但是当我现在做git push origin master时,我得到了:

From github.com:user/repo
 * branch            master     -> FETCH_HEAD
Already up-to-date.

但我添加的新文件没有出现在GitHub上。它仍然出现在我当地的回购中。当我尝试输入git commit -a时,它会说:

nothing added to commit but untracked files present

git branch -v给出:

* master 525fad2 Merge branch 'master' of github.com:user/repo

2 个答案:

答案 0 :(得分:1)

当你拉扯时可能会被藏起来。

尝试

git status

看看发生了什么,看看它是否被藏起来

git stash show

如果它被藏起来你需要应用它

git stash apply

使用apply而不是pop作为apply留下的东西,以便轻松重新申请,或查看等 如果它被隐藏,那么请查看https://stackoverflow.com/a/19003191/21063以获得更具说服力的解释。

答案 1 :(得分:1)

如果您执行git状态,您应该会看到类似的内容:

`分支开发

未跟踪的文件: (使用“git add ...”包含将要提交的内容)

   bb1.c

没有添加到提交但未跟踪的文件存在(使用“git add”跟踪) `

所以你需要做一个git add bb1.c,在你提交之前首先添加文件进行跟踪。