LazyGit-如何高效地实现版本控制

  1. 最基本的版本控制
  2. 回滚操作
  3. 查看修改
  4. cherry-pick
  5. interactive-rebasing

最基本的版本控制

使用x可以查看每个pane的cheatsheet.

最基本的就四条命令:

  • git add .
  • git commit -m
  • git push
  • git pull

在Lazygit的File Pane中, 直接a/c/P/p就可以解决.

回滚操作

  • 第一: 基于当前分支新建分支 (branch pane中用n)
  • 第二: 切换到新建分支 (branch pane中用空格)
  • 第三: 回滚到特定commit (commit pane中用g, 基于git reset)
  • 第四: 选择暂存区中需要保留, 或者舍弃的修改 (FIle Pane中用d或空格)
  • 第五: 将暂存区中的修改进行commit, 就可以在回滚分支进行开发.

如果只回滚一个文件, 那么在Commit Pane中, 选中某个commit, 用Enter可以查看这次commit修改的所有文件, 选中要回滚的文件用c检出即可.

查看修改

  • 如果需要查看某一个文件的所有commit修改历史, 可以在Commit Pane中, 用ctrl+s进行过滤, 注意过滤需要输入文件的路径, 而不是文件名称.

  • 如果需要查看commit的修改历史:

    • 查看一次commit:

      • o, 可以在远程仓库中用html查看编辑历史.

      • 如果需要导出html文件, 可以使用diff2html工具, 用如下命令可以生成报告:

        diff2html --su open -s side -F check.html -- -M <commit哈希值>
        

cherry-pick

Cherry-pick的作用是将其他分支中若干个commit作用于自己选择的分支中.

具体操作步骤是:

  • Commit Pane中用c复制commit.
  • 切换分支
  • Commit Pane中用v粘贴.

interactive-rebasing

在commit pane中对于某次commit用e, 这次commit上面的commit进入interactive-rebasing的状态.

每个commit有四种状态:

  • pick: 保留这次commit
  • squash: 和下面的commit合并, 并且commit的信息合并
  • drop: 删除commit
  • fixup: 和下面的commit合并, 并且作为fixup的commit信息删除

选择不同commit的状态之后, 用m, 然后continue即可批量操作.

使用r可以对某次commit进行修改信息, 修改完之后, 使用m, 然后continue, 就可以使修改生效.