我无意中把错误的文件给了Git, 但还没有把承诺推到服务器上。
我如何从当地存储库撤销这些承诺?
我无意中把错误的文件给了Git, 但还没有把承诺推到服务器上。
我如何从当地存储库撤销这些承诺?
当前回答
只要使用 git 重置 -- hard < last good SHA> 来重置您的更改并给予新的承诺。您也可以使用 git 检查退出 -- < bad filename> 。
其他回答
撤销上次承诺 :
git reset --soft HEAD^ or git reset --soft HEAD~
这将撤销最后一项承诺 。
在这里 -- 软意味着重置中。
HEAD~ 或 HEAD_ 意思是移动 在 HEAD 之前承诺。
替换上次承诺的新承诺:
git commit --amend -m "message"
它将以新承诺取代最后一项承诺 。
第一运行 :
git reflog
这将显示您在存储库中实施的所有可能的动作, 例如, 承诺、 合并、 调用等 。
那么,请:
git reset --hard ActionIdFromRefLog
只要使用 git 重置它执行下面的命令 :
git reset --soft HEAD~1
解释 : git 重设做什么, 它基本上是重置到任何您想要返回的承诺, 然后如果它与 -- soft 键合并, 它会返回, 但保留您文件中的更改, 所以您回到刚刚添加文件的阶段, HEAD 是分支的头部, 如果您和 ~ 1 合并( 在此情况下, 您也使用 HEAD+) , 它只会返回一个您想要的...
我为您创建了以下图像中的步骤, 详情更多, 包括所有在真实情况下可能发生的步骤, 并承诺执行代码 :
调
典型基周期
在前几次答复中谈到与Git相关的命令时,我想向所有读者介绍我典型的Git周期,这可能是有益的。 这就是我如何与Git合作,
首次从远程服务器上克隆 $project pulling 从远程( 当我没有未完成的本地推动承诺) git 将新的本地文件 1 添加到 $to_be_compent_list_list (只是想象 $to_be_compent_list means staged 区域) git 添加 $file1 从 $to_be_compent_list_list_list 列表中删除错误添加的文件 2 (假设文件2 添加为步骤 3 ) git 重新设置 $file2 提交文件 1 , 该文件位于 $to_ be_compent_ list git 承诺 - m “ comm 信件描述” 与远程仓库同步本地文件 1 (在冲突发生时配置合并工具 Git 合并时重新解析 # re Solive 合并, 也可以手动合并 添加冲突解析文件, 让我们说: git 添加 $file1 继续我之前的重定义命令 gfile1 -- 继续推进和已经同步的上次本地承诺推进源头: rechangs/ for
你需要做简单快的动作
git commit --amend
是私人分行还是私人分行
git commit -m 'Replace .class files with .java files'
如果它是共享的或公共的分支。