使用GitHub相对较新,我遇到了烦人的问题。
我创建了一个新分支,添加了我的更改并提交了它们。然后我使用git push
代替git push origin master
,我收到了错误:
fatal: The current branch branch_name has no upstream branch.
现在当我输入git status
时,我的更改消失了,当我尝试git push origin master
时,它告诉我一切都是最新的。我检查了主人和我现在的工作部门,他们仍然不同。我不知道如何更改我的更改,因此我可以将分支添加到GitHub。
答案 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
替换为提交的#。