有的时候我们对于某个功能为了实时保存自己写的代码,可能会有多次提交,所以等功能稳定下来,我们可能会有这种需求:将前面多余几次的提交记录合并为1个记录。幸运的是 Git 为我们提供了这样的命令。
有2种做法
合并部分
pick cc77998 ...
pick 1821f6a ...
...
pick 124422 ...
我们需要修改第2到n行的 pick 为 squash,这个的意思为将最后n-1次的提交合并为1次提交。然后我们保存退出,git 会一个个压缩提交历史,如果有冲突则解决冲突就好。
全部合并
git rebase -i --root
将全部的提交记录合并为1个
之前个人在 Github 开源了一些完整的项目,但是有些人用于商业用途,所以有了这个需求,就是将项目改动一下,删除一些重要代码提交最新的代码到仓库并且让用户不能通过提交的历史记录会滚到指定的版本看到代码。
以下为步骤
1.Checkoutgit checkout --orphan latest_branch2. Add all the filesgit add -A3. Commit the changesgit commit -am "commit message"4. Delete the branchgit branch -D master5.Rename the current branch to mastergit branch -m master6.Finally, force update your repositorygit push -f origin master
git tag -a 1.0.0 -m 'release SPM lib'