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

。。。

相关推荐
10年前端老司机3 分钟前
React 受控组件和非受控组件区别和使用场景
前端·javascript·react.js
夏晚星4 分钟前
vue实现微信聊天emoji表情
前端·javascript
停止重构6 分钟前
【方案】前端UI布局的绝技,响应式布局,多端适配
前端·网页布局·响应式布局·grid布局·网页适配多端
極光未晚6 分钟前
TypeScript在前端项目中的那些事儿:不止于类型的守护者
前端·javascript·typescript
ze_juejin7 分钟前
Vue3 + Vite + Ant Design Vue + Axios + Pinia 脚手架搭建
前端·vue.js
lichenyang4539 分钟前
React项目(移动app)
前端
用户618482402195110 分钟前
Vue-library-start,一个基于Vite的vue组件库开发模板
前端
美团技术团队22 分钟前
报名 | 美团技术沙龙第86期:多业务场景下,美团如何做性能优化
前端
Rrvive1 小时前
localhost 和 127.0.0.1 的核心区别
前端
蓝倾1 小时前
如何使用Python通过API接口批量抓取小红书笔记评论?
前端·后端·api