0

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

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

fatal: The current branch branch_name has no upstream branch.

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

4

2 回答 2

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将起作用。

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

于 2018-05-18T20:51:00.573 回答
-1

您需要recover使用最后一次提交,

git reset --soft HEAD~1

如果您进行了多次提交,则替换1为 # of commits made。

于 2018-05-18T20:19:20.620 回答