如何撤销一个 git rebase
上次说了通过git rebase 合并多个提交,那如何撤销呢? ...
上次说了通过git rebase 合并多个提交,那如何撤销呢? ...
git的工作区、暂存区、版本库的区分,让我们在编码的时候以渐进的方式稳步的把代码写出来。 我的习惯是先在工作区和暂存区迭代,某个部分写好了用添加到暂存区,进行下一步;发现工作区太乱了或者这样写不行,可以丢弃工作区的更改。 工作区达到一定的阶段,就提交一下。整个功能完成后可能是下面这样: 1 2 3 4 5 6 7 * 7e7af1b - (HEAD -> feat/addUser)完成 * 215353c - 修改自测bug * 5fcfa4f - 完成功能 * 34024f7 - 完成界面设计 * 288ebcb - 开始添加用户功能 * b36071d - (origin/main)登录功能 <----远程 * 25b848d - init 直接合并到main稍显杂乱,先用git rebase把提交合并一下: 要合并的是最后5个提交,使用命令 1 git rebase -i HEAD~5 git 弹出编辑器 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 pick 288ebcb 开始添加用户功能 pick 34024f7 完成界面设计 pick 5fcfa4f 完成功能 pick 215353c 修改自测bug pick 7e7af1b 完成 # Rebase b36071d....
问题 作为开发者,我们会有很多项目,公司项目,开源项目。对于不同的项目,我会使用不同的身份(user.name和user.email组合): 公司的项目使用自己的名字和公司的邮箱: 张三 <zhansan@somecorp.com> 开源项目我会使用昵称和私人邮箱: Jack <xxx+xxx@users.noreply.github.com> 在~/.gitconfig(Windows 为%USERPROFILE%.gitconfig)只能声明一组name和email组合作为默认身份。虽然可以在每个repo下简单的通过运行 git config user.email <EMAIL> 和 git config user.name <NAME>命令来更改,问题是对于每个项目我都要运行这两个命令,难免有时候也会忘了设置,导致使用了错误的身份提交。 幸运的是,git为我们提供解决此问题的方法 [includeIf] 从 git 2.13.0 开始,git 配置文件开始支持 Conditional Includes 的配置。通过设置 includeIf..path,可以向命中 condition 的 git 仓库引入 path 指向的一个 git 配置文件中配置。 [includeIf] 的语法如下, 为关键词, 是与关键词关联的数据, 具体意义由关键词决定。 [includeIf “:”] path = path/to/gitconfig 其中支持的 keyword 有: gitdir: 其中 是一个 glob pattern 如果代码仓库的.git目录匹配 指定的 glob pattern,那么条件命中; gitdir/i:gitdir的大小写不敏感版本。 onbranch:其中 是匹配分支名的一个glob pattern。 假如代码仓库中分支名匹配 ,那么条件命中。 就我们的需求,使用 gitdir 完全可以。 解决方案 加入我们有以下两个目录...
使用 git worktree 同时 签出多个分支,提高开发效率,节省磁盘空间。 ...