lxmoe的Git笔记

104 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第8天,点击查看活动详情

Git

  • workspace 工作区 :电脑上看到的目录

  • index/stage 暂存区

  • repository 仓库区 (本地仓库):.git 储存stage

  • remote 远程仓库

    初次下载设置用户名和邮箱作为标识

    • git config --global user.name
    • git config --global user.email
cd D:切换到D盘
cd ...切换到D盘你想要储存版本库的地方
mkdir testgit创建版本库
git init变成git可以管理的仓库/初始化
git add .添加到暂存区
git commit -m''注释''把暂存区内容提交到当前分支
git status查看是否还有文件未提交
git diff +file查看修改内容
git fetch(常和git merge连用)获取远程仓库
git blame +file查看指定文件修改记录
cat+file查看文本内容

1.查看提交历史

git log

  • --reverse 逆向显示(时间序)
  • --author 作者
  • --before={...}
  • --after={...}
  • graph 用于多级
  • --pretty=oneline 减少冗余信息

2.建立git目录两种方式

  • 直接git clone 远端仓库

  • 建立目录 git init

    添加仓库地址 git remote origin+http/SSH

3.普适流程

  • git add . 添加文件
  • git commit -m"message"
  • git status
  • git push origin main

4.查看差异

  • git diff -cached 暂存区与版本库差异

  • git diff 工作区与暂存区差异

  • git diff HEAD 工作区与本地版本库差异

5.撤销操作

  • 已经commit但未push

    • git reset --hard head~(不建议使用)
    • git reset --soft head~ 打回暂存区
    • git reset --mixed head~ 打回工作区
  • 已经commit并提交到远端

    git revert HEAD

    git push origin

  • 撤销工作区修改

    git cheakout -- (...)

  • 从暂存区撤销文件

    git rm --cached (...)

  • 已经commit想回到某个提交并且想保留之后的所有改动

​ git reset --keep(commit_id)

  • 修改最后一次提交的commit信息

    git commit --amend -m" "

6.分支操作

  • git branch (name)创建分支
  • git cheakout (name) 切换分支
  • git cheakout -b(name) 创建并切换分支
  • git branch _d (name) 删除分支
  • git merge (name) 分支合并
  • git branch 查看分支

7.rebase操作

  • 将某一分支的修改都移到另一个分支上(改变基底)

    git cheakout dev

    git rebase master

  • 整理过多冗余的commit(合并)

    • p:使用
    • r:使用但编辑commit message
    • e:使用但是继续编辑整个commit
      • 需要重新 add commit
    • s:压缩到上一个commit里面
    • f:同上
    • d:干掉commit

    git rebase --edit -todo 恢复编辑

    git rebase --continue 保存后输入

  • 强制覆盖

    git push force (谨慎使用)

8.剪枝

git cherry-pick e..g

9.暂时保存起来

git stash

git status

git stash pop

git stash list

git stash apply (...) 弹出

10.版本回退/回到最新

  • 回退

    • git reset --hard HEAD^ 回退到上一个版本
    • git reset --hard HEAD^^ 回退到上上个版本
    • git reset --hard HEAD~100 回退到前100个版本
  • 回到最新

    • git reset --hard +版本号
    • 了解版本号:git reflog