git - 你的分支通过1次提交领先于'origin / master'

时间:2012-04-16 06:00:39

标签: git push commit

我是git的新手,我正在研究git。

我在git中添加了一些文件:

git add <file1>
git add <file2>

然后我想把它推到审查阶段,但我做错了

git commit

因此我更改的文件不会用于评论 现在,如果我输入命令:

git status

它说

# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#
nothing to commit (working directory clean)

我想恢复该提交,我想推送这些文件进行审核而不是提交。 谁能告诉我怎么做?

7 个答案:

答案 0 :(得分:117)

你无法推送任何尚未提交的内容。操作顺序为:

  1. 进行更改。
  2. git add - 这会暂停您提交的更改
  3. git commit - 这会在本地提交您的分阶段更改
  4. git push - 这会将您提交的更改推送到远程
  5. 如果你在没有提交的情况下推动,就不会推动任何东西。如果您提交而不添加,则不会提交任何内容。如果你在没有提交的情况下添加,一切都没有发生,git只会记住你添加的更改应该考虑用于以下提交。

    您看到的消息(您的分支提前1次提交)意味着您的本地存储库有一个尚未推送的提交。

    换句话说:addcommit是本地操作,pushpullfetch是与远程交互的操作。

    由于在您工作的地方似乎有一个官方的源代码控制工作流程,您应该在内部询问应该如何处理。

答案 1 :(得分:49)

git reset HEAD^ --soft(保存更改,返回上次提交)

git reset HEAD^ --hard(放弃更改,回到最后一次提交)

答案 2 :(得分:27)

如果您只想丢弃更改并恢复到上次提交(您要共享的那个):

git reset --hard HEAD~

您可能需要检查以确保您想要这个(git log),因为您将丢失所有更改。

更安全的选择是运行

git reset --soft HEAD~ # reset to the last commit
git stash              # stash all the changes in the working tree 
git push               # push changes 
git stash pop          # get your changes back 

答案 3 :(得分:17)

我只是运行一个简单的解决方法:

git pull

没有更多。 现在它显示:

# On branch master
nothing to commit, working directory clean

答案 4 :(得分:5)

git reset HEAD ^

然后应该显示已修改的文件。

您可以将修改后的文件移动到新分支

使用,git checkout -b newbranch git checkout commit -m“文件已修改” git push origin newbranch

git checkout master

然后你应该在一个干净的分支上,你的更改应该存储在newbranch中。您可以稍后将此更改合并到主分支

答案 5 :(得分:4)

git reset HEAD <file1> <file2> ...

从下次提交中删除指定的文件

答案 6 :(得分:0)

第一次运行:

git pull 

然后:

git push

你可以走了。