Git-您的分支比“ source/master”领先1个提交

我是 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)

我想恢复那个提交,我想把这些文件推进审查,而不是提交。 有人能告诉我该怎么做吗?

403069 次浏览
git reset HEAD <file1> <file2> ...

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

如果你只是想扔掉更改,恢复到最后一个提交(你想分享的那个) :

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

您不能推送任何尚未提交的内容。操作顺序如下:

  1. 找钱吧。
  2. git add-这阶段你的变化提交
  3. git commit-这将在本地提交您的阶段性更改
  4. git push-将提交的更改推送到远程

如果你不承诺就推,什么也推不动。如果不添加任何内容就提交,那么什么也不会提交。如果添加时没有提交,那么什么都不会发生,git 只是记得您添加的更改应该在以下提交中考虑。

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

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

因为在您工作的地方似乎有一个正式的源代码控制工作流,所以您应该在内部询问应该如何处理这个问题。

保存您的更改,回到上次提交

git reset HEAD^ --hard(丢弃更改,返回到上次提交)

我用一个简单的方法解决了这个问题:

git pull

仅此而已。 现在它显示出:

# On branch master
nothing to commit, working directory clean

Git 复位头 ^

那么修改后的文件就会显示出来。

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

使用,

git checkout -b newbranch

git checkout commit -m "files modified"

git push origin newbranch

git checkout master

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

连接到

远端来源/主机

没有

本地主人

然后提出请求。

在远程主机上创建一个新的分支。