您当前的位置: 首页 >  git

Peter_Gao_

暂无认证

  • 0浏览

    0关注

    621博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

git删除某次提交(某个commit)的方法

Peter_Gao_ 发布时间:2020-05-25 12:20:39 ,浏览量:0

 

  例如我的提交历史如下

commit 58211e7a5da5e74171e90d8b90b2f00881a48d3a Author: test Date:   Fri Sep 22 20:55:38 2017 +0800     add d.txt commit 0fb295fe0e0276f0c81df61c4fd853b7a000bb5c Author: test Date:   Fri Sep 22 20:32:45 2017 +0800     add c.txt commit 7753f40d892a8e0d14176a42f6e12ae0179a3210 Author: test Date:   Fri Sep 22 20:31:39 2017 +0800     init 假如要删除备注为add c.txtcommit为0fb295fe0e0276f0c81df61c4fd853b7a000bb5c的这次提交

首先找到此次提交之前的一次提交的commit7753f40d892a8e0d14176a42f6e12ae0179a3210 执行如下命令 git rebase -i  7753f40 弹出如下界面 ```

将0fb295f这一行前面的pick改为drop,然后按照提示保存退出 至此已经删除了指定的commit,可以使用git log查看下 https://zm10.sm-tc.cn/?src=l4uLj4zF0NCIiIjRzMmRitGckJLQj5CMi9DNyMo%3D&uid=795f1af4fd3eaa5ef91c5882bddbe215&hid=f358bbb5ca80da6db643212ec30bad5d&pos=2&cid=9&time=1537315867584&from=click&restype=1&pagetype=0000004000000402&bu=ss_doc&query=git+%E5%88%A0%E9%99%A4%E6%9C%80%E8%BF%91commit&mode=&v=1&uc_param_str=dnntnwvepffrgibijbprsvdsdichei

 

起因: 不小新把记录了公司服务器IP,账号,密码的文件提交到了git 方法:     git reset --hard     git push origin HEAD --force 其他:

    根据–soft –mixed –hard,会对working tree和index和HEAD进行重置:     git reset –mixed:此为默认方式,不带任何参数的git reset,即时这种方式,它回退到某个版本,只保留源码,回退commit和index信息     git reset –soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可     git reset –hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容

    HEAD 最近一个提交     HEAD^ 上一次      每次commit的SHA1值. 可以用git log 看到,也可以在页面上commit标签页里找到. commit合并: http://www.douban.com/note/318248317/

 

总结:

cmds = ["git checkout -- .", "git clean -fd", "git pull"]

retcode, stdout, stderr = self.cmd.subprocess_popen(                 cmd.split(" "), cwd=git_repo)

cwd设置工作目录

git checkout -- .  点表示当前目录,git checkout -- file则为具体文件

删除 一些 没有 git add 的 文件;

git clean 参数

    -n 显示 将要 删除的 文件 和  目录

     -f 删除 文件,-df 删除 文件 和 目录

git clean -n

git clean -df

git clean -f  

关注
打赏
1664521772
查看更多评论
立即登录/注册

微信扫码登录

0.0372s