我是git的新手,我正在研究git.
我在git中添加了一些文件:
git add <file1>
git add <file2>
Run Code Online (Sandbox Code Playgroud)
然后我想推动审查,但我错了
git commit
Run Code Online (Sandbox Code Playgroud)
所以我改变的文件不用于评论.
现在,如果我输入命令:
git status
Run Code Online (Sandbox Code Playgroud)
它说
# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#
nothing to commit (working directory clean)
Run Code Online (Sandbox Code Playgroud)
我想恢复该提交,我想推送这些文件进行审核而不是提交.谁能让我知道我怎么能这样做?
tda*_*ers 121
你不能推动任何尚未提交的东西.操作顺序是:
git add - 这会对您提交的更改进行分阶段git commit - 这会在本地提交您的分阶段更改git push - 这会将您提交的更改推送到远程如果你在没有提交的情况下推动,就不会被推动.如果您提交而不添加,则不会提交任何内容.如果您在未提交的情况下添加,则根本不会发生任何事情,git只会记住您添加的更改应考虑用于以下提交.
您看到的消息(您的分支提前1次提交)意味着您的本地存储库有一个尚未推送的提交.
换句话说:add并且commit是本地操作push,pull并且fetch是与远程交互的操作.
由于在您工作的地方似乎有一个官方的源代码控制工作流程,因此您应该在内部询问应该如何处理.
Jua*_*tas 55
git reset HEAD^ --soft (保存更改,返回上次提交)
git reset HEAD^ --hard (放弃更改,返回上次提交)
She*_*hep 29
如果您只想丢弃更改并恢复到上次提交(您要共享的提交):
git reset --hard HEAD~
Run Code Online (Sandbox Code Playgroud)
您可能需要检查以确保您想要这个(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
Run Code Online (Sandbox Code Playgroud)
kar*_*gen 19
我只是运行一个简单的解决了这个问题:
git pull
Run Code Online (Sandbox Code Playgroud)
而已.现在它显示:
# On branch master
nothing to commit, working directory clean
Run Code Online (Sandbox Code Playgroud)
小智 13
git reset HEAD ^
那么修改后的文件就应该出现了.
您可以将修改后的文件移动到新分支中
使用,git checkout -b newbranch git checkout commit -m"文件已修改"git push origin newbranch
git checkout master
那么你应该在一个干净的分支上,你的更改应该存储在newbranch中.您可以稍后将此更改合并到主分支中