git 撤销&回滚命令 合并指定文件到另一个分支

工作区:指自己写代码的工作目录,未进行 git add 操作之前。

暂存区:执行过 git add 操作之后,但是为执行 git commit 操作。

本地分支:执行过 git commit 操作,但是未执行 git push 操作。

远程分支:执行过 git push 操作

三种场景介绍:

1.git add . 但是未进行 commit 操作。 暂存区

2.git commit 但是未进行 git push 操作。 本地分支

3.git push 操作了。 远程分支

第一种场景

执行了 git add 操作 未执行 git commit 操作。

git reset HEAD .             撤回所有 add 的文件
git reset HEAD  文件名        撤回指定的文件

这个命令只改变暂存区代码,并不影响其他区域代码。

第二种场景

执行了 git commit 操作 未执行 git push 操作。

// 恢复最近一次 commit
git reset --soft HEAD^
1.先git log                   查询提交日志 找到自己需要回滚的 版本号(commit_id)
2.git reset --hard commit_id  撤销commit提交以及代码的修改
或者
git reset --hard HEAD^        回退到最近一次的提交
HEAD^  的意思是上一个版本,也可以写成HEAD~1
如果你进行了2次commit,想都撤回,可以使用HEAD~2
或者
git reset commit_id           仅仅撤销本地仓库的commit提交,代码不变

慎用 git reset --hard commit_id(版本号) 因为它会把自己工作区的修改内容也给删除掉!!!
而 reset --soft相当于后悔药,给你重新改过的机会。对于上面的场景,就可以再次修改重新提交,保持干净的 commit 记录。

如果 commit 注释写错了,我们可以使用 。

git commit --amend -m "备注"   既可以覆盖上一次的备注信息。

第三种场景

第三种场景进行撤回的命令和第二个场景撤回命令一样。但是撤销之后 需要 进行 git push -f origin branchName 操作。这样远程仓库对应分支代码就会回滚掉。

注意:一定要注意回滚指定版本号,不应该是最新提交的版本号,而应该是最新一次commit之前的版本号,否则无法进行回滚的。

合并某个分支上的单个commit

首先,用git log或者编辑器工具查看一下你想选择哪些commits(后面一串数值)
然后,切换到目标分支 git checkout 分支
再然后(目标分支上) 合并操作 git cherry-pick 82ecb31(commits值)
最后别忘了关键一步(目标分支上) git push 操作(网上搜到的 都没说明这一步,巨坑)

stash

官方解释:当您想记录工作目录和索引的当前状态,但又想返回一个干净的工作目录时,请使用git stash。该命令将保存本地修改,并恢复工作目录以匹配头部提交。

stash 命令能够将还未 commit 的代码存起来,让你的工作目录变得干净。

相关命令

// 保存当前未commit的代码
git stash
// 保存当前未commit的代码并添加备注
git stash save "备注的内容"
// 列出stash的所有记录
git stash list
// 删除stash的所有记录
git stash clear
// 应用最近一次的stash
git stash apply
// 应用最近一次的stash,随后删除该记录
git stash pop
// 删除最近的一次stash
git stash drop

另附上:
git命令思维导图一张
在这里插入图片描述

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值