git 重写历史

  • 重写最后一次提交的commit

     git commit --amend
  • 修改多个历史

    git rebase -i HEAD~3

    命令执行后结果如下:

    pick f7f3f6d changed my name a bit
    pick 310154e updated README formatting and added blame
    pick a5f4a0d added cat-file
    
    # Rebase 710f0f8..a5f4a0d onto 710f0f8
    #
    # Commands:
    #  p, pick = use commit
    #  e, edit = use commit, but stop for amending
    #  s, squash = use commit, but meld into previous commit
    #
    # If you remove a line here THAT COMMIT WILL BE LOST.
    # However, if you remove everything, the rebase will be aborted.
    #

    将你想修改的每一次提交前面的pick改为edit

    edit f7f3f6d changed my name a bit
    pick 310154e updated README formatting and added blame
    pick a5f4a0d added cat-file

    当你保存并退出编辑器,Git会倒回至列表中的最后一次提交,然后把你送到命令行中,同时显示以下信息:

    $ git rebase -i HEAD~3
    Stopped at 7482e0d... updated the gemspec to hopefully work better
    You can amend the commit now, with
    
           git commit --amend
    
    Once you’re satisfied with your changes, run
    
           git rebase --continue

    然后

    $ git commit --amend
    
    $ git rebase --continue

    ok一切搞定。

参照资料地址:http://git-scm.com/book/zh/ch6-4.html

时间: 2024-11-04 14:39:20

git 重写历史的相关文章

Git使用教程(五)--Git重写历史

1. git commit –amend 如果仅仅想修改刚刚的提交(最后一个提交),可以使用git commit --amend修改最后一次提交.使用该命令时会弹出对话框(windows下)或者vim编辑界面(linux下).在弹出界面进行修改,保存后即可用新的提交信息进行提交了.该命令只能修改提交备注信息,对于其他信息无法修改. 2. git reset –soft head^ 该命令会回滚最后一个提交,执行一次表示回滚最近一次提交.然后改动会进入暂存区,可以使用git commit -m继续

git查看历史与乱码解决

1.git查看历史 不需要安装什么乌龟版,直接安装git就用这个功能.(当然可能没乌龟版这么人性化) 注意:git不像svn要联网才行,单机可可以查看历史,因为仓库已经在本地. 打开后: 一般这样子查看历史遇到中文会乱码,请看第二章节. 2.git乱码 [gui] encoding = utf-8 [i18n] commitencoding = gbk [svn] pathnameencoding = gbk 解决:在gitconfig文件只增加[gui]即可! 参考: http://www.d

git查看历史提交记录

#git查看历史提交记录 `git log --pretty=oneline filename`

三分钟教你学Git(十八) - 重写历史

git filter-branch 允许你使用一个单一命令来大范围地更改历史.所以这个命令要慎用. 1假如你想对所有的commits删除一个文件. git filter-branch --tree-filter 'rm to_be_deleted_file' HEAD 2 假如你想删除某些message中的某些以cr开头的行. git filter-branch --msg-filter ' sed -e "/^cr: /d" ' 3 将仓库变成以new_home目录为项目父目录.--

git 版本历史

版本:git rev-parse --git-dir显示Git版本库的位置   --show-cdup显示当前工作区目录的深度  --parseopt解析命令行参数 $ git rev-parse --symbolic --branches 显示分支 $ git rev-parse --symbolic --tags 显示里程碑 $ git rev-parse --symbolic --glob=refs/* 显示定义的所有引用.其中refs/remotes/目录下的引用称为远程分支(或远程引用

git基于历史commit创建分支

今天在使用dbus实现rpc时,发现远程方法传递和返回的参数不对,而前几天测试过明明是正常的.于是很自然的想到找回历史版本再测试一遍,确认是测试环境发生变化了,还是修改代码引起的. 可是怎么取出历史版本呢?对git不太熟练,折腾了一番总算搞定了. 1.确定需要取出版本的commit值: #git logcommit 76dc4da1c919a2baf430fbe0a7362844ab274451 Author: Zhengfeng Rao <[email protected]> Date: T

Git基本命令 -- 历史

历史. 收先需要了解一下git log命令, 使用git的帮助看看: git help log: 执行该命令后, 我的win10弹出来一个html页面, 里面是git log命令的帮助: 首先看看git log命令不加参数会有什么效果: 显示了commit的历史, 按时间从最新到最老. 看一下每一个commit, commit后边跟着的是唯一ID, 下面是作者和时间, 最下面就是commit的信息了. 然后可以输入q退出这个log画面. 然后试试几个参数 git log --online --g

7. Git比较历史版本的差异&amp;&amp;删除无用分支

比较历史版本的差异&&删除无用分支 比较历史版本的差异 命令展示 比较两个版本的差异可以使用git diff命令,并利用HEAD参数作为版本的标示 git diff HEAD HEAD 参数详解 A节点,可以包含多个子节点(A节点checkout 出多个分支B,C,D,则他们是A的子节点)A节点可以有多个父节点(B,C,D多个分支合并得到A,则B,C,D都是A的父节点)HEAD代表当前节点^是~都是父节点,区别是跟随数字时候,^2 是第二个父节点,而~2是父节点的父节点^和~可以组合使用,

git 获取历史版本

方案一:    git checkout v3.0 方案二:    git checkout git tag