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会只保留第二次提交的信息,并丢弃第一次提交的信息。

2. 使用git reset和git commit

3. 使用git merge --squash

posted @   等你下课啊  阅读(4)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示