Git 重写历史 filter-branch】的更多相关文章

转自http://git-scm.com/book/zh/Git-%E5%B7%A5%E5%85%B7-%E9%87%8D%E5%86%99%E5%8E%86%E5%8F%B2    重写历史 很多时候,在 Git 上工作的时候,你也许会由于某种原因想要修订你的提交历史.Git 的一个卓越之处就是它允许你在最后可能的时刻再作决定.你可以在你即将提交暂存区时决定什么文件归入哪一次提交,你可以使用 stash 命令来决定你暂时搁置的工作,你可以重写已经发生的提交以使它们看起来是另外一种样子.这个包括…
source:https://git-scm.com/book/zh/v1/Git-%E5%B7%A5%E5%85%B7-%E9%87%8D%E5%86%99%E5%8E%86%E5%8F%B2 重写历史 很多时候,在 Git 上工作的时候,你也许会由于某种原因想要修订你的提交历史.Git 的一个卓越之处就是它允许你在最后可能的时刻再作决定.你可以在你即将提交暂存区时决定什么文件归入哪一次提交,你可以使用 stash 命令来决定你暂时搁置的工作,你可以重写已经发生的提交以使它们看起来是另外一种样…
重写最后一次提交的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,…
背景 以前一直觉得只要pull和push就够了,但合作中总会遇到各种非理想的情况.这时候才发现git其他命令的作用. 现在的情况是,repo是一个远程team维护的,我们需要增加新feature,那么就是一个feature分支了.由于开发中各种修改,本feature分支多次commit.最后,交给远程team review的时候,人家看着乱七八糟的修改历史很蛋疼:很难看懂各种增量修改.其实,对人家来说,我们的改动应该就是增加或者删除.给他们看开发过程的增量反而太乱.于是,人家要求我们将featu…
git reset --hard origin/master git status FAQ: When I issue the "git status" command, I see the following "Your branch is ahead or origin/master ..." git message: # On branch master # Your branch is ahead of 'origin/master' by 5 commit…
当你不小心,写错了提交的注视/信息,该如何处理呢.理论上,SCM是不应该修改历史的信息的,提交的注释也是.   不过在git中,其commit提供了一个--amend参数,可以修改最后一次提交的信息.但是如果你已经push过了,那么其历史最后一次,永远也不能修改了.   我使用git commit --amend已经push过的,截图如下,我那个"fixes #3"永远的在版本历史中了. git commit --amend 的用法,,, # git commit --amend 然后…
Git提交代码规范 - 木之子梦之蝶 - 博客园 https://www.cnblogs.com/liumengdie/p/7885210.html Commit message 的格式 Git 每次提交代码,都要写 Commit message(提交说明),否则就不允许提交. 用commit message最好是能有规范和工具的约束. 每次提交,Commit message 都包括三个部分:header,body 和 footer. 其中,header 是必需的,body 和 footer 可…
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 history 但是红框中的路径无法拷贝.右键红框中的任一文件,有 HighLight this only, Highlight this too 高亮显示,试试看就知道效果了. 查看两个版本之间的所有变更集 在.git文件 同级目录下,右键 选择 git bash.使用命令 git diff --name-status HEAD~2 HEAD~3 若想查看最近三次提交的变更内容,命令是:git diff --name-status…
1.刚创建好的空仓库的分支是空的,即使是master分支也是不存在的.master分支是不能通过git branch 来创建的,只有在完成第一次提交才会自动创建,有git自动完成master分子的创建,也就是只有第一次提交创建好master分支后,才能再创建别的分支.因为git本质上就是基于图论原理的,图的第一个起点是系统在第一次提交的时候自动创建的,别的创建的所有的都是其他的分支都是第一个master分支后的"分支".master作为主分支,在所有的git项目都是固定.所有的git项…