爱吃鱼饵

 

Git 撤销操作与分支合并操作指南

Git 撤销操作与分支合并操作指南

有时执行git add .操作后续想要撤销add某一个文件或者所有文件;

有时执行git commit 操作后续想要回到上一个提交点操作;

前提须知

git status # 查看git状态

撤销add

查看Git状态

$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
Changes to be committed:                                # 注意
  (use "git reset HEAD <file>..." to unstage)

        modified:   .idea/misc.xml
        modified:   .idea/modules.xml
        modified:   app/app.iml

只要在 “Changes to be committed” 这行下面的,就说明是已暂存状态。也就是说这些文件被add过,但是没有commit。如果此时提交,那么该文件此时此刻的版本将被留存在历史记录中。
但是这些文件是被.ignore忽略的,所以我们应该取消add

此时: 执行 git reset HEAD <路径/文件名> 就是对某个文件进行撤销了.

撤销对不必要文件的修改:git checkout -- <路径/文件名> 或者 git restore <file>...

🙅‍♀️ git reset HEAD 撤销所有add的文件。

撤销commit

背景:

git add . //添加所有文件

git commit -m "本功能全部完成"

执行完commit后,想撤回commit,怎么办?

解决办法: git reset --soft HEAD^ 仅仅撤销上一次提交,不回滚代码修改。

学习内容:

--mixed 
意思是:不删除工作空间改动代码,撤销commit,并且撤销git add . 操作
这个为默认参数,git reset --mixed HEAD^ 和 git reset HEAD^ 效果是一样的。


--soft  
不删除工作空间改动代码,撤销commit,不撤销git add . 
 
--hard
删除工作空间改动代码,撤销commit,撤销git add . 

注意完成这个操作后,就恢复到了上一次的commit状态。

git commit --amend  修改注释内容

合并分支学习

切换分支:git checkout 分支名

创建新分支: git checkout -b 分支名

合并分支:git merge 分支名,将分支名所在分支合并到当前所在分支。

合并分支出现的三种情况

git merge 命令应用的三种情景

  • “快进”(无冲突)
  • 非“快进”,修改不同文件。(无冲突)
  • 非“快进”,修改相同文件。(有冲突)

参考

posted on 2021-06-09 16:05  爱吃鱼饵  阅读(2108)  评论(0编辑  收藏  举报

导航