我的远程实习(二) | 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

。。。

相关推荐
好_快34 分钟前
Lodash源码阅读-getMapData
前端·javascript·源码阅读
好_快35 分钟前
Lodash源码阅读-MapCache
前端·javascript·源码阅读
萌萌哒草头将军1 小时前
🚀🚀🚀尤雨溪连发两条推特墙裂推荐的这些库你一定要知道!
前端·vue.js·react.js
混血哲谈1 小时前
webpack的SplitChunksPlugin和在路由或组件级别进行拆分
前端·webpack·node.js
木心操作1 小时前
webpack使用详细步骤
前端·webpack·node.js
烂蜻蜓2 小时前
深入理解 Vue 3 项目结构与运行机制
前端·javascript·vue.js
han_hanker3 小时前
一个普通的vue权限管理方案-菜单权限控制
前端·javascript·vue.js
老大白菜4 小时前
lunar是一款无第三方依赖的公历 python调用
前端·python
混血哲谈6 小时前
如何使用webpack预加载 CSS 中定义的资源和预加载 CSS 文件
前端·css·webpack