持续创作,加速成长!这是我参与「掘金日新计划 · 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