zen·工作环境搭建之git篇

您所在的位置:网站首页 Repair与fixup区别 zen·工作环境搭建之git篇

zen·工作环境搭建之git篇

2023-12-27 20:37| 来源: 网络整理| 查看: 265

这是git工具的最终篇,主要是Lazygit已经满足日常开发几乎所有要求了

足够轻量,不占用系统资源,特别是内存 足够便捷,包含日常操作而不需要打一堆命令 快捷键齐全,最好切个分支3s内完成

git本身的命令行工具比较薄弱,交互太烂。而VSCode的git管理工具偶尔失灵,比如大文件diff的时候经常卡住,毕竟是个GUI软件,IDE要兼顾的东西太多了,大文件要先AST解析一遍再高亮代码解析肯定不如纯命令行响应速度快。

图形化的软件如SourceTree,腾讯内的UGit,其实都挺好用。网上能下到的也挺多的,比如fork。但是要长期开启一个软件其实还不是非常方便,所以会用终端图形化git管理工具会非常高效,且保证你在每个公司都能一套配置打天下

Lazygit(推荐)

一个比tig更好用的git图形化工具

中文文档: gitcode.gitcode.host/docs-cn/laz…

brew安装 brew install lazygit

其他安装方式请自行查阅文档

~/.bashrc设置别名,执行完source一下生效

alias lg="lazygit" 帮助

x快捷键可以调出help面板

使用 区块切换 1-5/tab

数字1-5在区块间切换 tab区块切换 h/l也可以在上一个/下一个区块间切换 q退出 x菜单

[](中括号键)可以在Branches面板里切换

新建和切换分支/分支同步远端

branch区块,n就可以创建新的分支,输入分支名就好了

P可以推送分支,git push p可以拉取分支,git pull 选择分支后f可以同步远端修改,git fetch git add

j(▲)/k(▼)在文件树上下切换 H/L在文件树左右移动,主要针对窗口显示不下的情况

如果要针对某一行做add,可以回车进入文件,选中某行后空格做add staged操作。同理a可以选中单文件全部修改,一起操作,跟VSCode里git面板操作一样一样的。

也可以tab切换面板,用d做unstaged操作

如何add某一行?

也可以v进入visual模式(vim操作),选中多行后空格add

如何放弃某行修改

选中后d删除这一行的修改,回车确认即可,有提醒可以注意下

选中文件后按d,则可以放弃一个文件的全部修改

如何放弃全部修改

files区块,按d即可

更加多的功能

D会有更多的功能

当然你可以直接清空本地修改,选第一个选项 nuke working tree,本地修改都会还原

如何unadd

tab可以切换到Stage视图,然后空格或者d取消add操作,同理可以选中多行操作

git commit

block聚焦Files(第二块),直接输入c就可以了,会弹出输入框输入commit message提交

Amend Commit

同理,git commit --amend可以通过A来实现

revert commit

选中commit后t可以revert commit,即创建一个新的commit抵消原有的commit。 一般是提交公共分支后需要回退之类的

checkout branch

选中分支后空格键检出,最简单的方式了

也可以选中分支后按F,就是git reset,配合soft/mixed/hard选项,省略敲命令的过程

也可以按c输入分支名检出

branch merge

在源分支(from) -> 目标分支(target)操作过程中,可以通过选择待合并分支后,按 M 进行merge操作

git reset

移动到4 Commits视图,输入g就可以了

也可以到commit面板的的Reflog检出,比如reset后Commit面板没有的

按g可以检出

cherry-pick

cherry-pick 基本概念 ruanyifeng git-cherry-pick 可以看下

到Commit区块后,空格就可以应用选择的commit了。注意这里cherry-pick时候本地不能有没有提交的内容

把某个commit应用到其他分支

比如把上图test分支最新的commit合入master分支,可以这么操作

选择commit后c(copy commit)/C(copy commit range),都是cherry-pick的操作 按3回到Branch面板按空格切换分支到master 按4到Commits面板,按v粘贴

通过如上三步可以把一个commit同步到不同分支

把某行修改做修改

如上,Commit面板选择commit回车选择文件回车,选定范围后Control+p调出面板,可以把patch还原,也可以移动到工作区或者新的commit

rebase interactive

处理rebase信息后m可以选择continue或者skip等继续操作

Rebase

选择分支后按r就可以rebase branch了,如下图等价于git rebase master。如果有冲突可以解决冲突后回车continue

同时,选中commit的时候control+j/k可以移动commit的上下位置

合并commit - fixup or Squash

如何借助fixup与autosquash让Git分支保持整洁

fixup和squash区别:fixup是合并相邻两次commit,squash一般是合并一大片commit

fixup

可以看到跟git commit --fixup 效果是一样的

Squash

可以看到跟git rebase -i --autosquash 效果是一样的

solve conflict

合并有冲突会有提示,根据提示进入解决冲突阶段

空格可以选择保留的部分,上下方向键切换 左右方向键可以在前后两次冲突间切换 b 代表both,保留两次冲突的修改 push/pull p: pull files P: push files

stash/pop stash

比如像暂存一些东西方便去其他分支做bugfix之类的

也可以g取出来stash的东西(会删除stash) 如果不希望删除可以按空格,则可以取出stash而不删除 可以直接d删除某个stash

回滚代码

通过commit面板找到需要回滚的部分,然后d回滚这次的修改

查看某个文件的修改历史 filtering

追责或者想找出谁修改了某个文件的时候特别有用

在Commit面板选择文件后ctrl+s,会输出对这个文件所有修改的记录

查看两次commit的diff

在commits面板,W显示diff选项,选择后commitId变为粉红色

参考 用最高效的工具,学会Git最强的功能 —— 命令行神器 Lazygit


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3