我无意间把错误的档案 写错给Git 基特,但还没有将承诺推进到服务器上。
我如何解除那些承诺?当地当地仓库?
我无意间把错误的档案 写错给Git 基特,但还没有将承诺推进到服务器上。
我如何解除那些承诺?当地当地仓库?
当前回答
通常情况下,你想要取消对因为您犯了一个错误,所以您想要修正它 基本上就是OP在问问题时所做的。真的,您真的想要复复做a 承诺。
这里的大多数答案都集中在命令行上。 虽然命令行是使用Git的最佳方法, 当你对它感到舒服的时候, 它可能与来自其他版本控制系统到 Git 的人有点不同。
使用 GUI 如何操作。 如果您安装了 Git, 您已经拥有了所有您需要遵守的指示 。
注:我在这里假设您在推动前意识到承诺是错误的。 如果您不知道推力意味着什么, 那么您可能还没有推动。 继续执行指令 。 如果您推动错误承诺, 最危险的方法就是跟踪错误承诺, 并做出新的承诺, 来修补事情, 您在版本控制系统中这样做的方式不允许您重写历史 。
使用图形用户界面来修正你最近的过错:
git gui
其他回答
头:
在重置承诺之前, 我们应该知道关于 HEAD... HEAD 在您的工作目录中只是您目前的状况。 它由承诺编号代表 。
Git 承诺 :
在由独有标签代表的一承诺下指定的每一项更改。 无法删除提交 。 所以, 如果您想要您最后的承诺, 您可以简单地跳入其中 。git reset
.
您可以使用两种方法跳入最后一个承诺 :
方法1:(如果你不知道承诺编号,但想移动到第一个)
git reset HEAD~1 # It will move your head to last commit
方法2:(如果你们知道自己所做的一切,那末,你们只须将自己所知道的(事情)重新置身于你们所认识的(事情)中)
git reset 0xab3
# 提交编号
注:想要了解最近一项任务尝试git log -p -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)
通常情况下,你可能不必担心你的私人部门 将历史变成原始历史。只是催促后续承诺(见上文“如何撤销公共承诺”),然后,做一个壁球- 合并隐藏历史。
git reset --soft HEAD~1
软性 : 这将只从本地端删除承诺, 并保留文件所做的更改 。
git reset --hard HEAD~1
git push origin master
硬性 : 这将从本地和远程删除承诺, 并删除文件中所做的更改 。
为了完整起见,我将提出前几个答复所忽略的一个明显明显的方法。
由于承诺没有被推,遥控器没有改变,因此:
有时候,如果你的高贵的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 : 该选项重写上次承诺的历史) 。