SSH配置

https://www.jianshu.com/p/726eb4417d49

工作区、暂存区和本地库

工作空间
是写代码的地方,可以理解成工作区。
暂存区
git add会将其加入到暂存区
本地仓库
git commit会将暂存的数据放到本地仓库
远程仓库
git push将本地仓库的数据推送到远程仓库。

操作分支

  1. git branch branchname
  2. 创建并且切换分支
  3. git checkout -b branchname
  1. git checkout branchname
  1. git branch

参考日志

  1. git reflog

查看版本号

1. IDEA查看

选择对应的提交记录右键
image.png

2. 命令行操作

  1. git log

回滚

HEAD 说明:

  • HEAD 表示当前版本
  • HEAD^ 上一个版本
  • HEAD^^ 上上一个版本
  • HEAD^^^ 上上上一个版本

1.已经提交,没有push

  1. 撤销commit
  2. git reset --soft xxx(去到的版本号)
  3. 撤销commitadd两个操作
  4. git reset --mixed xxx(去到的版本号)
  5. --mixed 为默认,可以不用带该参数
  6. git reset xxx(去到的版本号)

2. 已提交,并且push

1. 命令行操作

方式一:reset

  • soft(个人建议这种,保存工作区代码,同时保留暂存区
    • 移动本地库HEAD指针,撤回之后所有内容全部放进暂存区
    • 回滚后,仅仅是把本地库的指针移动了,而暂存区和你本地的代码是没有做任何改变的。而你上次改动已提交committed到本地库的代码显示是绿色即未提交
  • Mixed (默认 — ):
    • 移动本地库HEAD指针,重置暂存区(回到add文件之前的状态),撤回之后所有内容全部放进工作区中
    • 意思就是,回滚后,不仅移动了本地库的指针,同时暂存区的东西也没了,意思就是你上次添加到暂存区的文件没了
  • Keep(谨慎操作)
    • 移动本地库HEAD指针,暂存区不变,重置工作区
    • 意思就是,回滚后,本地代码就是你回退版本的代码,而暂存区是没有做任何改变的。
  • Hard(谨慎操作)
    • 移动本地库HEAD指针,重置暂存区重置工作区
    • 意思就是,回滚后,本地代码就是你回退版本的代码
      1. 撤销并舍弃版本号之后的提交记录,本地代码也会删除。使用需要谨慎。毁尸灭迹的操作
      2. 使用场景大部分为:推送错分支
      3. git reset --hard xxx(去到的版本号 )
      4. 强制推送
      5. git push -f

      方式二:revert

      1. 撤销。但是保留了提交记录。并且他是移除指定的提交。
      2. git revert xxx(要移除的版本号,不是去到的版本号)
      git revert详解:i 进入修改模式,修改提交信息,工作区代码会丢失

      image.png

      2. IDEA 操作

      image.png
      image.png

暂存

可以将git工作区的代码更改暂存,之后就可以执行git pull、git merge之类的命令

暂存命令

  1. git stash save "暂存备注"

查看暂存记录

  1. git stash list

取回暂存代码

  1. git stash pop

取消【取回暂存代码】

  1. git reset --hard

log 中的不同颜色含义

黄色代表:HEAD
绿色代表:是你的本地分支
紫色代表:远程分支

如果你看到一个标志是黄绿紫,,表示当前HEAD和你远程还有你本地都有这个分支,黄色只是表示HEAD的位置。
如果你看到一个提交只有紫色分支,表示你本地没有这个分支。
如果你看到一个是绿色和紫色,表示这个提交是远程分支并且你本地也有这个分支。
如果你看到一个提交只有绿色,表示这只是你本地的分支提交。