git提交和回退

本文详细介绍了Git中的关键操作,如提交文件、撤销commit、回退到特定提交状态、更改默认编辑器以及处理多余文件。还包括了gitconfig的配置和撤销commit的不同方式以确保代码管理的灵活性和安全性。
摘要由CSDN通过智能技术生成

一. git 提交

git pull  # 更新代码
git status # 查看代码状态,包括修改的,未追踪的
git branch -a   # 查看有哪些分支和自己在哪个分支
git diff(file) # 查看文件变动处,不接file即为查看所有改动文件变动
git add file     # 提交文件至本地暂存区
git commit -m "...."       # 提交文件并说明提交信息
git push origin diag_service_base  # (orign:远端分支   diag_service_base:自己所在分支   即为将自己分支上的改动文件提交至远端分支),待有权限的人合并分支

git config --global user.email "dengwen@g-pulse.net"  # 配置git名字和邮箱
git config --global user.name "dengwen"
git config --global credential.helper store           # 保存git名字和密码,不用每次提交输入名字和密码
git config --global --list                            # 查看当前服务器配置名称和邮箱

在这里插入图片描述

二. git commit 后准备回退,尚未 git push

  1. 执行 git log 找到准备退回到的 commit 的 id
    比如 commit id 为:90f1ce4d73c5dc63f46fa61984a6bb878f47374
  2. 执行 git reset --soft HEAD^ 操作
    对应 HEAD 即上述 commit id 信息
git reset --soft 90f1ce4d73c5dc63f46fa61984a6bb878f47374^    # 用 soft 回退则文件的修改还在,还可以继续其他操作
git reset --hard 90f1ce4d73c5dc63f46fa61984a6bb878f47374^    # 用 hard 回退则会用指定分支覆盖本地文件,文件的修改不存在,不建议使用,除非想用指定版本覆盖本地

说明:最后的符号^记得不要漏掉
此时通过 git status 时,可以看到 git add 的文件(绿色)

git restore --staged CMakeLists.txt  # 恢复到提交之前状态
git stash                            # 将更改文件暂存到暂存区
git checkout -b xxx                  # 创建 xxx 分支并切换到此分支上
git stash pop                        # 将暂存区的更改文件弹出到新分支上
git add                              # 执行常规操作即可提交文件
  1. git reset modify_file
    将指定文件 modify_file 恢复到上一个提交(commit)的状态。这个命令会撤销对该文件的所有本地修改,将其恢复到最近一次提交时的状态。这可以用于取消对文件的某些更改,或者在需要时重新开始对文件的修改。需要注意的是,使用 git reset 可能会丢失未提交的更改,因此在使用之前务必谨慎考虑。
  2. git checkout – modify_file
    通过 git checkout – modify_file 还原至修改之前状态
git checkout -- .  # 回退多个修改文件
git checkout a99a439c7fb20d6e5c7a25162cb6c96eebcbd3f0  # 跳转到指定版本
git checkout a99a439c7fb20d6e5c7a25162cb6c96eebcbd3f0 -- file  # 跳转到指定版本的文件
  1. git clean -df
    删除本地有但版本库中没有的文件
git clean -df

三. git add 添加多余文件 撤销操作

git reset HEAD 后面什么都不跟的,就是上一次 add 里面的内容全部撤销
git reset HEAD XXX 后面跟文件名,就是对某个文件进行撤销

  1. git commit 撤销操作
git reset --soft HEAD^ 

这样就成功的撤销了 commit 操作
注意,仅仅是撤回 commit 操作,您写的代码仍然保留。
2. git reset 其他参数说明:

--mixed 
# 意思是:不删除工作空间改动代码,撤销 commit,并且撤销 git add . 操作
# 这个为默认参数, git reset --mixed HEAD^ 和 git reset HEAD^ 效果是一样的。
--soft  
# 不删除工作空间改动代码,撤销 commit,撤销 git add . 
--hard
# 删除工作空间改动代码,撤销 commit,撤销 git add . 
# 注意完成这个操作后,就恢复到了上一次的 commit 状态。
# commit 注释写错了,只是想改一下注释,只需要:
git commit --amend
# 此时会进入默认 vim 编辑器,修改注释完毕后保存就好了。

四. 更改 Git commit 的默认编辑器

在 Linux 中可以按照以下步骤进行操作:
1.打开终端,并输入以下命令来更改 Git 的全局配置:

git config --global core.editor <editor>

将 editor 替换为你想要设置为默认编辑器的命令。例如,如果你想要将默认编辑器更改为 vim,可以输入以下命令:

git config --global core.editor "vim"

2.保存更改后,Git 将使用设置的编辑器作为默认编辑器进行 commit 操作。
现在,当在执行 Git commit 操作时,Git 将自动启动设置的编辑器来编辑: commit message。
验证设置是否生效,可以使用以下命令查看当前的 Git 全局配置:

git config --global --get core.editor

git如何撤销提交的commit

五. 撤销某个commit的变更

如果我们需要完全撤销某个commit及其对应的变更,可以使用git revert命令。
步骤如下:

  1. 使用git log命令查看提交历史,并找到需要撤销的commit的哈希值,例如"commit2"。
  2. 输入git revert commit2来撤销该commit及其对应的变更。
  3. Git会自动创建一个新的commit来记录撤销的更改。可以使用git log命令查看撤销后的提交历史。
  4. 最后使用git push命令将撤销后的commit推送到远程仓库。
    这种方法是相对安全的,因为它会保留之前的commit记录,并且不会破坏其他人的代码库。

六. 回退到之前的commit状态

如果我们需要完全回退到某个commit之前的状态,可以使用git reset命令。
步骤如下:

  1. 使用git log命令查看提交历史,并找到需要回退到的commit的哈希值,例如"commit3"。
  2. 输入git reset commit3来回退到该commit之前的状态。
  3. Git会将当前分支指针指向到指定的commit,但是之后的commit会被丢弃。
  4. 最后使用git push -f命令将回退后的状态强制推送到远程仓库。
    需要注意的是使用git reset命令回退commit会导致之后的commit丢失,可能会导致其他人的代码库出现问题,所以在使用之前应该与团队成员进行沟通和协调。

总结:

撤销提交的commit是Git中常见的操作之一,在错误的提交或者需要对之前的代码变更进行修复的情况下,我们可以使用git commit --amend命令修改最后一次commit的内容,使用git revert命令撤销某个commit的变更,或者使用git reset命令回退到之前的commit状态。

沾衣欲湿杏花雨,吹面不寒杨柳风。
2024年3月26日18:37:02

  • 18
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值