我无意间把错误的档案 写错给Git 基特,但还没有将承诺推进到服务器上。
我如何解除那些承诺?当地当地仓库?
我无意间把错误的档案 写错给Git 基特,但还没有将承诺推进到服务器上。
我如何解除那些承诺?当地当地仓库?
当前回答
我想撤销我们共享存储库中最新的五个承诺。 我查了我想回溯到的订正代号 。 然后我输入了下面的内容 。
prompt> git reset --hard 5a7404742c85
HEAD is now at 5a74047 Added one more page to catalogue
prompt> git push origin master --force
Total 0 (delta 0), reused 0 (delta 0)
remote: bb/acl: neoneye is allowed. accepted payload.
To git@bitbucket.org:thecompany/prometheus.git
+ 09a6480...5a74047 master -> master (forced update)
prompt>
其他回答
日期 于源树树( GitHub 的 GUI) , 您可以右键单击承诺并做一个“ 反向提交 ” 。 这将取消您的更改 。
在终点站上:
可选择使用:
git revert
或者:
git reset --soft HEAD^ # Use --soft if you want to keep your changes.
git reset --hard HEAD^ # Use --hard if you don't care about keeping your changes.
替换索引中的文件 :
git rm --cached *.class
git add *.java
那么,如果它是私人分支,修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正修正承诺:
git commit --amend
或者,如果它是共享分支, 做出新的承诺:
git commit -m 'Replace .class files with .java files'
(更改上一个承诺,使用真棒交互式重新基数.)
ProTipTM: 添加*.class
至 a高光度( gitignore)阻止这种情况再次发生。
修改承诺是理想的解决办法,如果需要改变最后的承诺,但更普遍的解决办法是:reset
.
您可以将 Git 重置为任何承诺 :
git reset @~N
何处处N
之前承诺的数HEAD
, 和@~
重发到上一个任务 。
您不必修改承诺,而是可以使用:
git reset @~
git add *.java
git commit -m "Add .java files"
退 退 退git help reset
,特别是:--soft
--mixed
和--hard
为了更好地了解它的作用
如果你搞砸了,你总是可以使用折叠式折叠式折叠式折叠式折叠式折叠式折叠式折叠式折叠式折叠式折叠式折叠式折叠式折叠式折叠式折叠式折叠式折叠式折叠式折叠式折叠式折叠式折叠式折叠式折叠式折叠式折叠式折叠式折叠式折叠式折叠式折叠式折叠式折叠式折叠式折叠式
$ git reset @~
$ git reflog
c4f708b HEAD@{0}: reset: moving to @~
2c52489 HEAD@{1}: commit: added some .class files
$ git reset 2c52489
... and you're back where you started
我拿到了身份证明bitbucket
并随后:
git checkout commitID .
示例:
git checkout 7991072 .
它又把它恢复到那个承诺的工作副本上。
这将添加一个新的承诺, 删除所添加的文件 。
git rm yourfiles/*.class
git commit -a -m "deleted all class files in folder 'yourfiles'"
或者您可以重写历史来撤销最后一项承诺 。
警告警告警告警告:此命令将永久删除对《京都议定书》的修改.java
您承诺的文件( 和任何其他文件) -- 从工作目录中删除全部修改 :
git reset --hard HEAD~1
缩略hard reset
至HEAD-1
您的工作副本将在您错误犯罪之前设定为犯罪状态 。
使用 git- gui (或类似) 执行git commit --amend
。从 GUI 中,您可以从承诺中添加或删除单个文件。您也可以修改承诺信件。
仅将分支重新设置为上一个位置(例如,使用gitk
或git rebase
) 。然后从保存的副本中重新应用您的更改。在您本地仓库的垃圾回收收集后,它会像没有发生不想要的操作一样。要用一个命令来完成所有这些,请使用git reset HEAD~1
.
警告单词: 粗心使用git reset
我建议基特新手们尽可能避免这样做。
表演a逆向樱桃摘 (git- rever 反转)来撤销更改。
如果你还没有在你的分支上做其他的修改, 你可以简单地做。 。 。
git revert --no-edit HEAD
然后将更新的分支推至共享仓库 。
承诺历史将分别显示两个承诺.
备注:如果有其他人在为分支工作,您不想这样做。
git push --delete (branch_name) ## remove public version of branch
清理你的分行 在当地,然后冲...
git push origin (branch_name)
通常情况下,你可能不必担心你的私人部门 将历史变成原始历史。只是催促后续承诺(见上文“如何撤销公共承诺”),然后,做一个壁球- 合并隐藏历史。