Git 常用命令
Git 常用命令
修改 commit 中的信息
1. 只修改本地最近一次 commit
例如,刚刚在本地进行了一次提交 git commit -m "init"
后觉得commit信息太简短了,或者写错了等情况想要修改这次commit信息时,使用:
git commit --amend
这个命令会进入一个vi编辑界面,完成更改后会用一个新的提交顶替之前最新的提交
# 1. 在本地进行一次提交,commit信息是 “init”
git commit -m "init"
# 2. 查看提交记录
git log
-------
commit 04e8037b01a23984389627eea28c3ee87885aaef (HEAD -> master)
Author: xxx <xxx@qq.com>
Date: Thu Jun 6 14:05:18 2024 +0800
init
-------
# 3.修改提交记录
git commit --amend
-------
[master 57db279] 我把init信息修改了
Date: Thu Jun 6 14:05:18 2024 +0800
4 files changed, 102 insertions(+)
create mode 100644 xxxx
create mode 100644 xxxx
create mode 100644 xxxx
create mode 100644 xxxx
-------
# 4.再查看提交记录
git log
-------
commit 57db279f5d85d87b35f19b0c64bea3d06cc231bd (HEAD -> master)
Author: xxx <xxx.com>
Date: Thu Jun 6 14:05:18 2024 +0800
我把init信息修改了
-------
#
$ git reflog
-------
57db279 (HEAD -> master) HEAD@{0}: commit (amend): 我把init信息修改了
04e8037 HEAD@{1}: commit (initial): init
-------
2. 修改远程 commit
例如,如果这次提交已经推送到远程仓库了,我们发现 commit 信息写错了等情况需要更改时,这通常是不推荐的,因为这会改变已经公开的 commit 历史,可能会导致与其他开发者的冲突。但是,如果你确定要这样做,你可以使用 git rebase
命令结合 --interactive
选项(通常简写为 -i)来编辑 commit 历史。使用:
git rebase -i HEAD~n
其中 n 是你想要修改的 commit 的数量。然后,Git 会打开一个文本编辑器,列出最近的 n 个 commit。你可以修改每个 commit 的操作(pick, reword, edit, squash 等),对于你想要修改 commit 信息的 commit,选择 reword。保存并关闭编辑器后,Git 会为每个标记为 reword 的 commit 打开一个文本编辑器,让你修改 commit 信息。
注意:在重写 commit 历史后,你需要使用 git push --force
来推送你的更改到远程仓库。这将会覆盖远程仓库上的历史,所以请确保你知道你在做什么,并且已经与其他开发者协调好了。
合并 commit
很多情况下我们需要合并 commit,例如第一次 commit 后,发现有处代码忘记更改了,于是更改后又需要 commit 一次
1. 使用 git rebase -i
git rebase -i HEAD~n
其中 n 是你想要合并的 commit 的数量
git rebase -i
的操作都是类似的, 首先会打开一个vi编辑器,然后修改 commit 操作, 合并 commit 需要选择 squash
, 将 pick
改为 squash
或者 s
保存并关闭后,git会继续打开一个vi编辑器让你修改 commit 的内容
# 注意此处从上往下,按提交时间先后正序排列(与使用 git log 命令查看时的顺序相反)
pick f7f3f6d 第一次提交的信息
squash a5a7a7f 第二次提交的信息,这个将被合并
如果你使用squash,Git会保留两个提交的信息,并允许你合并它们。如果你使用fixup,Git会只保留第二次提交的信息,并丢弃第一次提交的信息。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架