我无意间把错误的档案 写错给Git 基特,但还没有将承诺推进到服务器上。
我如何解除那些承诺?当地当地仓库?
我无意间把错误的档案 写错给Git 基特,但还没有将承诺推进到服务器上。
我如何解除那些承诺?当地当地仓库?
当前回答
主要设想有两种情况:
你还没推动承诺呢
如果问题在于您所做的额外文件( 而您不希望存储库中的文件), 您可以使用git rm
并且实践,--amend
git rm <pathToFile>
您也可以以下列方式删除整个目录-r
,或甚至与其他巴什命令命令
git rm -r <pathToDirectory>
git rm $(find -name '*.class')
删除文件后, 您可以执行-- amend -- 修正 -- 修正选项选项选项
git commit --amend -C HEAD # the -C option is to use the same commit message
这将重写您最近的本地承诺删除额外文件, 因此, 这些文件将不会被按键发送, 并且 GC 将会从您本地的. git 仓库中删除 。
您已经推进了任务
您可以对其它情景应用相同的解决方案,然后做git push
和和-f
选项选项,但它是未建议因为它以不同的变化(它会破坏你的仓库) 推翻了遥远的历史。
相反,你必须做承诺--amend
(记住关于 - amend : 该选项重写上次承诺的历史) 。
其他回答
您可以使用git revert <commit-id>
.
为了得到身份证明 只需使用git log
.
撤销上次承诺 :
git reset --soft HEAD^ or git reset --soft HEAD~
这将撤销最后一项承诺 。
给--soft
意思是重置为中位 。
HEAD~ or HEAD^
意思是移动以在 HEAD 之前承诺 。
替换上次承诺的新承诺:
git commit --amend -m "message"
它将以新承诺取代最后一项承诺 。
类型类型类型git log
并发现最后的散列代码,然后输入:
git reset <the previous co>
撤销一项承诺是有点吓人,如果你不知道它是如何运作的。 但如果你理解的话,它其实很容易。我会告诉你4种不同的方式, 你可以解除一项承诺。
说你们有这个,C是你们的总部,(F)是你们档案的状态。
(F)
A-B-C
↑
master
git reset --hard
您想要销毁C国罪行,并抛弃任何未承诺的变更。你这样做:
git reset --hard HEAD~1
结果是:
(F)
A-B
↑
master
现在B是总部,因为你用了--hard
中,您的文件在承诺 B 时被重置为状态。
git reset
也许C不是灾难,只是有点不对劲取消承诺,但保留您的更改在您做更好的承诺之前需要编辑一点。 从这里重新开始, C 做为您的总部 :
(F)
A-B-C
↑
master
做这个,离开--hard
:
git reset HEAD~1
在这种情况下,结果是:
(F)
A-B-C
↑
master
在这两种情况下,HEAD都只是最新承诺的指针。git reset HEAD~1
,您告诉 Git 将 HEAD 指针移回一个承诺。但(除非您使用)--hard
你把你的档案和以前一样留在原样,所以现在git status
显示您在 C 中检查过的更改。 您没有丢失任何东西 !
git reset --soft
最轻轻的触碰,你甚至可以取消您的承诺, 但要离开您的文件和文件指数指数指数指数:
git reset --soft HEAD~1
这不仅留下你的档案, 甚至离开你的指数指数指数指数当你独自一个人去的时候,git status
,你会看到相同的文件在索引中和以前一样。事实上,在这个命令之后,你可以做git commit
你会重蹈覆辙 做你刚做过的同样的事
git reset --hard
需要把密码拿回来还有一件事: 假设你销毁如在第一个示例中,但后来发现你需要它运气不好,对不对?
不,有仍为键入此
git reflog
你将看到一份(部分)承诺的清单,沙沙即你们所迁居的地方。你们要找出你们所摧毁的罪状,然后你们要这样做:
git checkout -b someNewBranchName shaYouDestroyed
承诺在Git不会在90天内被摧毁 所以你通常可以回去 拯救一个你本不想除掉的人
(2015年等)
如果你在视觉工作室无法同步, 因为不允许你按到像“开发”那样的分支, 那么和我想的一样多, 在视觉工作室NEITHE莱弗特( REVERT)努尔战 地 方(硬的或软的)将有效。
答案是用数字标注的:
使用此命令命令 根 你的项目根 核武器 任何试图 被推推:
git reset --hard HEAD~1
备份或拉链你的文件 只是以防你不想失去任何工作,等等...