意外的" git push"

时间:2018-05-18 20:16:36

标签: git

使用GitHub相对较新,我遇到了烦人的问题。

我创建了一个新分支,添加了我的更改并提交了它们。然后我使用git push代替git push origin master,我收到了错误:

fatal: The current branch branch_name has no upstream branch.

现在当我输入git status时,我的更改消失了,当我尝试git push origin master时,它告诉我一切都是最新的。我检查了主人和我现在的工作部门,他们仍然不同。我不知道如何更改我的更改,因此我可以将分支添加到GitHub。

2 个答案:

答案 0 :(得分:1)

首先,您错误地解释了git status输出。它没有告诉你你的改变消失了。它告诉您,您当前的索引和工作树不会因您上次提交而改变 - 而这只是因为您提交了更改。

要查看您的更改是否仍然存在,您可以使用类似git show的内容(查看当前提交相对于上一次提交的更改)或git log -p(查看正在运行的内容)当前历史变迁的历史)。

所以是的,你的第一次推送失败了,但这只意味着你仍然需要完成正确的push命令。失败命令的完整错误消息将为

fatal: The current branch foo has no upstream branch.
To push the current branch and set the remote as upstream, use

    git push --set-upstream origin <branch-name>

其中<branch-name>是您的分支的名称。

git push origin master说明所有内容最新的原因是您在master上没有任何更改要推送。如果您要做的是将更改添加到master,然后将其推送到master上的远程,那么最直接的方法是将它们本地合并到master,然后git push origin master 1}}会起作用。

但是,如果您只是想让遥控器了解您的分支(同时仍将其与master分开),那么您可以使用git push --set-upstream origin <branch-name>

答案 1 :(得分:-1)

您需要recover使用上次提交,

git reset --soft HEAD~1

如果您提交了多个提交,请将1替换为提交的#。