我无意中把错误的文件给了Git, 但还没有把承诺推到服务器上。
我如何从当地存储库撤销这些承诺?
我无意中把错误的文件给了Git, 但还没有把承诺推到服务器上。
我如何从当地存储库撤销这些承诺?
当前回答
撤销上次承诺 :
git reset --soft HEAD^ or git reset --soft HEAD~
这将撤销最后一项承诺 。
在这里 -- 软意味着重置中。
HEAD~ 或 HEAD_ 意思是移动 在 HEAD 之前承诺。
替换上次承诺的新承诺:
git commit --amend -m "message"
它将以新承诺取代最后一项承诺 。
其他回答
当地承诺
git reset --soft HEAD~1
或者如果你们记不起来,那末,你们可以使用
git rm --cached <file>
用于被推动的 承诺
从存储库历史中删除文件的适当方式是使用 git 过滤器- blanch 。 也就是说,
git filter-branch --index-filter 'git rm --cached <file>' HEAD
但我建议您谨慎使用此命令 。 更多信息请访问 git- filter- branch- blanch- 1 手册页面 。
替换您的本地版本, 包括您对服务器版本的更改。 这两行代码将迫使 Git 调用并覆盖本地版 。
打开命令提示并浏览到 Git 工程根。 如果您使用视觉工作室, 请单击团队、 同步并点击下面的“ 打开命令提示 ” (见图像) 。
调
一旦进入CMD, 继续使用以下两个指示。
git fetch --all
那你就做
git reset --hard origin/master
这将覆盖 Git 服务器上的现有本地版本 。
(2015年等)
如果你在视觉工作室无法同步, 因为不允许你按到像“开发”那样的分支, 那么就像我努力的一样, 在视觉工作室NEITHER, REWET NOR(硬的或软的)RESET(硬的或软的)将有效。
答案是用数字标注的:
使用此命令命令 根 你的项目根 核武器 任何试图 被推推:
git reset --hard HEAD~1
备份或拉链你的文件 只是以防你不想失去任何工作,等等...
只要使用 git 重置它执行下面的命令 :
git reset --soft HEAD~1
解释 : git 重设做什么, 它基本上是重置到任何您想要返回的承诺, 然后如果它与 -- soft 键合并, 它会返回, 但保留您文件中的更改, 所以您回到刚刚添加文件的阶段, HEAD 是分支的头部, 如果您和 ~ 1 合并( 在此情况下, 您也使用 HEAD+) , 它只会返回一个您想要的...
我为您创建了以下图像中的步骤, 详情更多, 包括所有在真实情况下可能发生的步骤, 并承诺执行代码 :
调
这里是网站: 哦,该死,混蛋!
这里有许多解密的秘方 如何在Git 中解决事情。其中一些是:
哦,该死,我需要改变 信息在我的最后一次承诺!
git commit --amend
# follow prompts to change the commit message
哦,我无意中把什么东西 给了主人 本来该在全新的树枝上!
# Create a new branch from the current state of master
git branch some-new-branch-name
# Remove the commit from the master branch
git reset HEAD~ --hard
git checkout some-new-branch-name
# Your commit lives in this branch now :)