当前位置: 首页 > news >正文

GIT 实战命令操作大全,代码变动,推动,修改备注,撤销(篇幅一)

大家好,我是九逸,给大家分享git 实战操作命令

一、代码变动查看

1. 查看代码变动

git status

image-20251013214914010

2. 查看工作区与最新提交之间的变动(未暂存/已暂存)

git diff <文件路径>

image-20251013215942391

3. 查看某文件的完整修改历史(每次提交的变动)

git log -p <文件路径>

这个就不建议使用命令来查看了,直接使用工具来使用就挺好。

4. 查看某文件自某个提交以来的所有变动

git diff <commit-hash> HEAD -- <文件路径>
  • 比较从某个提交到当前 HEAD 版本之间的变化。

不常用

二、代码推送

如果第一次使用命令提交一定要注意当前分支,现在编译工具都集成了GIT,我们可以肆无忌惮的提交,但是使用命令一定要注意,可以使用下面的命令。

1. 查看当前分支

git  branch 

image-20251013221152858

1. 第一次推送时设置上游分支(upstream)

使用编译器的可以不用看这个步骤,因为编译器已经集成好了

如果这是你第一次推送某个分支,可以这样:

git push -u origin <分支名>
  • -u 参数会将本地分支与远程分支关联(设置上游),之后可以直接用 git pushgit pull,无需再指定分支。

做个演示

 git push -u origin dev

image-20251013221303211

2. 后续推送(已设置 upstream)
git push

可以直接使用 推送命令将代码提交到远端,当前现在编译器都集成了git,所有不用担心这个,只要分支切换对就行。

2. 提交命令

1. 提交到本地仓库
git add .
git commit -m "你的提交信息"

image-20251013221642911

这个都是最常见的提交步骤。

2. 推送代码到远程仓库

推送代码的时候一定要拉取 最新的代码

git pull        # 先拉取最新代码
或
git pull origin dev        # 先拉取最新代码

如果按照上面已经设置了分支,可以直接进行 push

git push

或者可以指定分支进行代码提交

git push origin <分支名>

image-20251013221954691

image-20251013222144752

这样就提交好了。

3. 推送所有分支(扩展)
git push --all origin

三、修改提交备注

如果代码提交了,但是发现自己的备注写错了怎么办呢?可以使用以下几种方式进行解决。

情况一:刚提交,还未推送到远程(最简单)

使用 --amend 修改最后一次提交的备注:

git commit --amend -m "新的正确备注"

示例:

备注写错了两个字

image-20251013223215909

发现写错,修正为:

image-20251013223358732

注意:

  • 只能修改最后一次提交。
  • 如果已经 push 过,后续需要强制推送(见情况二)。

情况二:已推送到远程仓库

如果你已经执行过 git push,修改后需要强制推送

# 1. 修改最后一次提交的备注
git commit --amend -m "正确的备注"# 2. 强制推送到远程(谨慎操作!)
git push --force-with-lease origin <分支名>

📌 示例:

image-20251013223828790

🔐 推荐使用 --force-with-lease 而不是 --force,更安全,避免覆盖他人提交。


情况三:修改更早的某次提交备注(历史提交)

需要使用交互式 rebase:

# 查看最近3次提交,选择要修改的
git rebase -i HEAD~3// 或者 直接输入当前已经提交的 版本id
git rebase -i <commit-id>

在弹出的编辑器中:

  1. 找到你要修改备注的那行,把 pick 改成 reword
  2. 保存退出
  3. Git 会打开编辑器让你输入新的备注

修改完成后,如果已推送到远程,仍需:

git push --force-with-lease

⚠️ 警告:修改历史提交会影响协作

不建议使用 git push --force 你没有拉取最新代码,直接执行,有可能会覆盖掉代码。

git push --force-with-lease 会做一件事:“我本地认为远程分支应该是什么状态?如果不是,就拒绝推送。”

--force-with-lease 会检测到这个不一致,拒绝你的推送,提醒你先拉取合并。

命令类比
git push --force“不管别人有没有改,我直接覆盖!” ⚠️ 危险
git push --force-with-lease“如果我没落后于远程,我才允许覆盖。” ✅ 更安全

举个例子

先看git提交记录,使用 git log 命令,或者 工具都行

image-20251013224350258

然后执行 git rebase -i HEAD~3 命令

image-20251013224156273

现在提交了两次记录

PICK 18d2459 打开等待时间
pick 0c0a7fc 增加备注2

假如现在要修改第一次提交的记录

输入 i 然后进入编辑模式,找到修改备注的这一行,把 pick 改成 reword

image-20251013230137393

然后 wq! 保存

会有一个弹框出现

image-20251013230154065

修改完成后,保存,仍需:

 git push --force-with-lease origin dev

image-20251013230311313

可以上git看查

image-20251013230346211

已经修改成功。

建议:写 commit message 时认真一点,遵循清晰、简洁、有意义的原则。

四、撤销提交记录

1. 撤销最近一次提交(保留更改到暂存区)

如果你想撤销最近一次提交,但保留所做的修改(文件在暂存区,可以再次提交),使用:

git reset --soft HEAD~1
  • HEAD~1 表示当前提交的前一个提交。
  • --soft 会保留修改在暂存区。

适用场景:提交了错误的 commit message 或想把更改合并到下一次提交中。


2. 撤销最近一次提交(保留更改到工作区)

如果你想撤销提交,并把修改带回工作区(需要重新 git add),使用:

git reset HEAD~1
# 或者
git reset --mixed HEAD~1
  • --mixed 是默认模式,修改会保留在工作目录中,但不会暂存。

适用场景:想重新编辑文件后再提交。


3. 彻底删除最近一次提交(危险!

如果你想完全删除最近一次提交及其所有更改(不可恢复),使用:

git reset --hard HEAD~1

⚠️ 警告:这会永久删除你最近一次提交的更改,请确保你不再需要这些内容。

适用场景:提交了敏感信息或临时测试代码,且不希望保留任何痕迹。


4. 创建一个“反向提交”来撤销(推荐用于已推送到远程的提交)

如果你已经将提交推送到远程仓库,不要使用 reset,因为会重写历史,影响他人协作。

应该使用 revert 命令,它会创建一个新的提交来“抵消”之前的更改:

git revert HEAD
  • 这会生成一个新提交,内容是把最后一次提交的更改“反过来”。
  • 安全,适合团队协作。

例如:你提交中添加了一行代码,revert 会生成一个删除该行的提交。


5. 撤销更早的某次提交

如果你想撤销更早的某个提交(不是最近的),使用:

git revert <commit-hash>
  • <commit-hash> 是你想撤销的那个提交的哈希值(如 a1b2c3d)。

Git 会创建一个新提交来抵消那次更改。


6. 强制推送到远程(仅在必要时)

如果你使用了 reset 修改了本地历史,并且想同步到远程仓库,需要强制推送:

git push --force-with-lease origin <branch-name>

⚠️ 警告:这会改写远程历史,仅在你确定没有其他人基于这些提交工作时使用


7. 实战举例

1. 撤销最近一次提交的记录

在这里插入图片描述
执行撤销命令

 git reset --soft HEAD~1 

在这里插入图片描述
在这里插入图片描述

但是这时候我们发现会提示这个
在这里插入图片描述
这时候需要强制推送一次

git push --force-with-lease 

在这里插入图片描述
这会儿就不会报错了。当然你可以重新add 然后强制推送。但是注意,一定要关注团队的提交记录,不要覆盖掉代码。

2. 撤销远端一次提交的记录

我们现在要回退这个提交记录
在这里插入图片描述
在这里插入图片描述

总结:

场景推荐命令
撤销最近提交,保留修改用于重新提交git reset --soft HEAD~1
撤销提交,修改回到工作区git reset HEAD~1
彻底删除提交和更改git reset --hard HEAD~1(慎用)
已推送到远程,想安全撤销git revert HEAD
撤销历史中的某次提交git revert <commit-hash>

篇幅二马上发布,主要是版本合并,如何合并代码冲突。

http://www.dtcms.com/a/499681.html

相关文章:

  • 网站建设的 关键词家具公司网页设计
  • 蓝牙HCI指令
  • git命令——基础
  • 网站建设的总结200字wordpress长微博工具
  • Qt Q_ENUM和Q_ENUM_NS的区别?
  • 【机器人学中的状态估计】2.1 习题:证明p维高斯概率密度函数积分为1
  • 网站建设合同范本简易版邯郸有什么互联网大公司吗
  • 凡科建站的怎么取消手机网站怎么登录住建局官网
  • 什么是智能管理平台?
  • 《录井工程与管理》——第七章 录井资料处理技术
  • 温州瓯北做网站最好看的免费观看全集电视剧
  • 做网站上传图片做网站做app什么专业
  • 【OpenHarmony】外部设备管理器架构
  • 从头开始为 ARM 创建 Ubuntu 映像
  • Android 开发 | 如何使用命令使 Android 应用进入调试状态
  • 在线下单网站怎么做国家企业信用信息查询公示系统广东
  • 企业营销网站建设策划书邯郸市人社局
  • 中山哪里可以做网站产品推广方案ppt
  • 城管综合执法办案系统的技术体系解析:从移动端到云端
  • 开发基于AKS能运维开工单的智能体应用
  • 3D生成软件Rodin 2.0 简单测试案例
  • vivado 从已实现的设计工程创建自定义PL IBIS文件方法
  • TFword:从字符到片段,解析一个“小而精”的字符串处理工具的设计智慧
  • 甘肃网站备案审核flash网站源码带asp后台
  • 网站模板 手机app展示西安seo外包平台
  • F - 算符优先分析
  • 深入剖析RocketMQ3-底层原理
  • 网站建设所出现的问题电影网站域名
  • ROS趣味题25-26-1版本
  • 网络编程的基础知识