我不小心将错误的文件提交给Git,但我还没有将提交推送到服务器.
如何从本地存储库中撤消这些提交?
在我的主分支中,我做了一个git merge some-other-branch
本地,但从未将更改推送到原始主.我不是故意合并,所以我想撤消它.在git status
合并后执行操作时,我收到此消息:
# On branch master
# Your branch is ahead of 'origin/master' by 4 commits.
Run Code Online (Sandbox Code Playgroud)
git revert HEAD -m 1
Run Code Online (Sandbox Code Playgroud)
但现在我收到这条消息git status
:
# On branch master
# Your branch is ahead of 'origin/master' by 5 commits.
Run Code Online (Sandbox Code Playgroud)
我不希望我的分支通过任何数量的提交领先.我该如何回到那一点?
如何将本地分支重置为远程存储库中的分支?
我做了:
git reset --hard HEAD
Run Code Online (Sandbox Code Playgroud)
但当我跑一个git status
,
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
modified: java/com/mycompany/TestContacts.java
modified: java/com/mycompany/TestParser.java
Run Code Online (Sandbox Code Playgroud)
你能告诉我为什么我有这些'修改'?我没有碰过这些文件?如果我这样做,我想删除它们.
有谁知道如何轻松撤消git rebase?
想到的唯一方法是手动进行:
在我目前的情况下,这是可行的,因为我可以很容易地发现两个分支的提交(一个是我的东西,另一个是我的同事的东西).
然而,我的方法让我感到不理想和容易出错(假设我刚刚用自己的2个分支重新定位).
有任何想法吗?
澄清:我正在谈论一个rebase,在此期间重播了一堆提交.不仅仅是一个.
在最后一次提交之后,我在工作副本中修改了一堆文件,但我想撤消对其中一个文件的更改,就像将其重置为与最近提交的状态相同.
但是,我只想撤消单独一个文件的工作副本更改,而不是其它任何内容.
我怎么做?
我不小心修改了我以前的提交.提交应该是独立的,以保留我对特定文件所做更改的历史记录.
有没有办法撤消最后一次提交?如果我这样做git reset --hard HEAD^
,第一次提交也会撤消.
(我还没有推到任何远程目录)
在我的一个开发分支中,我对我的代码库进行了一些更改.在我能够完成我正在处理的功能之前,我不得不将当前分支切换到master来演示一些功能.但只是使用"git checkout master"保留了我在开发分支中所做的更改,从而破坏了master中的一些功能.所以我所做的是使用提交消息"临时提交"在我的开发分支上提交更改,然后为演示提供checkout master.
现在我已完成演示并重新开始在我的开发分支上工作,我想删除我所做的"临时提交",同时仍然保留我所做的更改.那可能吗?
我如何取消承诺我在git中的最后一次提交?
是吗
git reset --hard HEAD
Run Code Online (Sandbox Code Playgroud)
要么
git reset --hard HEAD^
Run Code Online (Sandbox Code Playgroud)
?
我试图撤消自上次提交以来的所有更改.我试着git reset --hard
和git reset --hard HEAD
观察后,这个职位.我用头响应现在是18c3773 ...但是当我查看我的本地源时,所有文件仍然存在.我错过了什么?
undo ×10
git ×9
git-reset ×3
command-line ×1
commit ×1
dvcs ×1
file ×1
git-amend ×1
git-commit ×1
git-index ×1
git-merge ×1
git-rebase ×1
pre-commit ×1
rebase ×1
redo ×1
vim ×1