我的远程实习(二) | git 持续更新版

前言

这篇文章用来记录一些要用的 git 方法 , 将会持续更新 , 不过 , 我可能可能及时更新 , 因为我要工作 , 还有其他比较重要的文章需要写🤡

算是先占个坑~

如何修改提交信息

修改git commit -m ""引号中的内容可以根据提交是否已经推送到远程仓库来采用不同的方法,以下为你详细介绍:

提交未推送到远程仓库

如果提交还没有推送到远程仓库,你可以使用git commit --amend命令来修改最近一次提交的提交信息。

操作步骤如下:

  1. 执行以下命令开始修改提交信息:
bash 复制代码
git commit --amend
  1. 执行该命令后,会打开一个文本编辑器(通常是 Vim),其中显示当前的提交信息。你可以直接修改这个信息。
  2. 修改完成后,保存并关闭编辑器。这样,最近一次提交的提交信息就被更新了。

如果你想直接在命令行中修改而不打开编辑器,可以使用以下命令:

bash 复制代码
git commit --amend -m "新的提交信息"

提交已推送到远程仓库

若提交已经推送到了远程仓库,你需要先按照上述未推送时的方法修改本地的提交信息,然后使用git push -f强制推送到远程仓库。不过,这种方法会重写远程仓库的提交历史,在多人协作的项目中使用时需要谨慎,因为这可能会给其他协作者带来麻烦。

操作步骤如下:

  1. 修改本地提交信息:
bash 复制代码
git commit --amend -m "新的提交信息"
  1. 强制推送到远程仓库:
bash 复制代码
git push -f origin 分支名

以下是总结操作过程的示例代码:

bash 复制代码
# 若提交未推送到远程仓库,直接修改
git commit --amend -m "新的提交信息"

# 若提交已推送到远程仓库
git commit --amend -m "新的提交信息"
git push -f origin 分支名

在多人协作的项目中,建议你在强制推送之前先与团队成员沟通,避免影响他人的工作。

撤回刚刚的 GitHub 提交

要撤回刚刚的GitHub提交,有以下几种方法:

使用命令行

  • 使用 git revert命令 :该命令会创建一个新的提交来撤消之前的更改,不会改变历史记录,适用于多人协作场景。具体步骤如下:
    • 首先使用git log命令找到要撤回的提交的哈希值。
    • 然后执行git revert <commit_sha>命令,其中<commit_sha>为要撤回的提交的哈希值。执行该命令后,会生成一个新的提交,用于撤销指定提交的更改。
    • 最后将新的提交推送到远程仓库:git push origin <branch_name>,其中<branch_name>为当前所在分支。
  • 使用 git reset命令 :该命令可以直接删除提交,但会改变历史记录,使用时需谨慎。
    • 撤回最近的commit但保留更改 :使用git reset --soft HEAD~1命令,该命令会将HEAD指向前一个commit,但保留工作目录中的更改,即代码仍在工作区,且处于暂存状态,可以继续修改后重新提交。
    • 撤回最近的commit并丢弃更改 :如果希望完全丢弃最近的commit和更改,可使用git reset --hard HEAD~1命令。此命令会将HEAD指向前一个commit,并删除工作区和暂存区中与该提交相关的所有更改,将代码恢复到上一个提交时的状态。

使用GitHub图形界面

登录GitHub账户,打开相关的仓库,转到"Commits"标签,找到要撤回的刚刚的commit,点击commit旁边的"Revert"按钮,GitHub将自动为你创建一个新的撤回commit,然后将新的commit推送到远程仓库即可完成撤回操作。

远程与本地冲突

遇到了一个常见的 Git 错误,这是因为本地对 README.mddoc/Josn_prompt.md 文件进行了修改,而远程仓库中这些文件也有更新。Git 无法自动合并这些更改,因为可能会覆盖本地修改。

解决方案

有以下几种选择:

1. 提交本地更改

bash 复制代码
git add README.md doc/Josn_prompt.md
git commit -m "我的本地修改"
git pull --tags origin main

2. 暂存本地更改

bash 复制代码
git stash
git pull --tags origin main
git stash pop

如果 git stash pop 后出现冲突,你需要手动解决这些冲突。

3. 放弃本地更改

如果你的本地修改不重要:

bash 复制代码
git checkout -- README.md doc/Josn_prompt.md
git pull --tags origin main

。。。

相关推荐
风继续吹..1 小时前
后台管理系统权限管理:前端实现详解
前端·vue
yuanmenglxb20042 小时前
前端工程化包管理器:从npm基础到nvm多版本管理实战
前端·前端工程化
新手小新2 小时前
C++游戏开发(2)
开发语言·前端·c++
我不吃饼干3 小时前
【TypeScript】三分钟让 Trae、Cursor 用上你自己的 MCP
前端·typescript·trae
小杨同学yx4 小时前
前端三剑客之Css---day3
前端·css
Mintopia5 小时前
🧱 用三维点亮前端宇宙:构建你自己的 Three.js 组件库
前端·javascript·three.js
故事与九6 小时前
vue3使用vue-pdf-embed实现前端PDF在线预览
前端·vue.js·pdf
Mintopia7 小时前
🚀 顶点-面碰撞检测之诗:用牛顿法追寻命运的交点
前端·javascript·计算机图形学
wb1897 小时前
企业WEB应用服务器TOMCAT
运维·前端·笔记·tomcat·云计算
烛阴7 小时前
解锁 Gulp 的潜力:高级技巧与工作流优化
前端·javascript