Git 常用的命令
记录自己日常使用到的 Git 相关的命令,方便后面复用和查找
发布于 星期日,三月 31 2024
git clone 代码
- 克隆特定分支:
git clone -b master https://github.com/aifuxi/fuxiaochen.git
- 克隆特定目录:
git clone --depth 1 --single-branch <remote-repository-url> <directory-name>
# or
git clone --depth 1 https://github.com/aifuxi/fuxiaochen.git
修改上一次 commit message
# 方法1:进入命令行手动编辑,:wq 保存退出
git commit --amend
# 方法2:直接修改上一次 commit 的 message
git commit --amend --message="feat: 我直接摆烂"
查看 log
# 方法1:完整的查看 log
git log
# 方法2:简洁的查看信息,每个 log 浓缩在一行
git log --oneline
# 方法3:ohmyzsh git 插件提供的 alias
glog
批量修改 commit message
- 首先
git log --oneline
查看 log 和 commit hash。找到需要修改的 commit 范围
e67dda3 (HEAD -> master) gggg reword add c.txt
f3b9c50 bbbb reword add b.txt
e1f0ce1 ee reword add a.txt
5a745d4 e reword c branch
03eec8d init master
(END)
-
比如需要修改最近 4 个的 commit message
- 方法1:那么就输入
git rebase -i HEAD~4
- 方法2:从当前 HEAD 下,往后数 4 行,找到这个 commit 的 hash 。这里对应的是 03eec8d;输入git rebase -i 03eec8d
- 方法1:那么就输入
-
输入上面 2 个方法中其中一条命令会进入编辑模式,然后把下面的 commit message中 pick 改成 r;
你想改那几条记录,就把该条记录前的 pick 改成 r ;
全部修改成 r 后,:wq 保存。会一个一个弹窗编辑框(弹框的数量取决于你把多少条记录前的 pick 改成 r)让你可以重新修改 commit message。修改完成后 :wq 保存会自动跳到下一条记录的编辑
pick 5a745d4 e reword c branch
pick e1f0ce1 ee reword add a.txt
pick f3b9c50 bbbb reword add b.txt
pick e67dda3 gggg reword add c.txt
全局配置
# 配置 email
git config --global user.email "你的邮箱"
# 配置 name
git config --global user.name "你的名字(看情况随便写都行)"
生成 SSH Key
# 输入这行命令后连续按3次回车就可以生成 key
ssh-keygen -t rsa -b 4096 -C "你的邮箱"
# 查看生成的公钥
cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAklOUpkDHrfHY17SbrmTIpNLTGK9Tjom/BWDSU
GPl+nafzlHDTYW7hdI4yZ5ew18JH4JW9jbhUFrviQzM7xlELEVf4h9lFX5QVkbPppSwg0cda3
Pbv7kOdJ/MTyBlWXFCR+HAo3FXRitBqxiX1nKhXpHAZsMciLq8V6RjsNAQwdsdMFvSlVK/7XA
t3FaoJoAsncM1Q9x5+3V0Ww68/eIFmb1zuUFljQJKprrX88XypNDvjYNby6vw/Pb0rwert/En
mZ+AW4OZPnTPI89ZPmVMLuayrD2cE86Z/il8b+gw3r3+1nKatmIkjn2so1d01QraTlMqVSsbx
NrRFi9wrf+M7Q== email@email.com
怎么生成 tag
参考这个文章:用 git 给项目打 tag 标签
强制切换到远程的某个分支的最新版本
以 origin 的 master 分支为例
git fetch && git reset --hard origin/master
使用场景:
比如在部署 Next.js 项目代码的时候,需要拉取最新的代码到本地。如果在本地改了一些代码,只是临时的改动,下次不需要这个改动了,可以执行这个命令。强制替换当前代码为远程的某个分支的最新版本,忽略、放弃当前所有改动。
参考链接
- Git