git常用命令
撤消修改操作
1git restore . 清空所有改动
2git restore --staged <file>从当前版本库中恢复暂存区
创建文件等小命令
1touch a // 创建一个a文件
2echo 1234 >> a // 把1234这个内容放入a文件
3cat a // 打开a文件 读取出a文件中的内容
4mkdir test // 创建test文件夹
5rm 文件名 // 删除文件
6pwd // 打印当前工作路径
常用git 命令
1git init // 初始化 在工作路径上创建主分支
2git clone 地址 // 克隆远程仓库
3git clone -b 分支名 地址 // 克隆分支的代码到本地
4git status // 查看状态
5git add 文件名 // 将某个文件存入暂存区
6git add b c //把b和c存入暂存区
7git add . // 将所有文件提交到暂存区
8git add -p 文件名 // 一个文件分多次提交
9git stash -u -k // 提交部分文件内容 到仓库 例如本地有3个文件 a b c 只想提交a b到远程仓库 git add a b 然后 git stash -u -k 再然后git commit -m "备注信息" 然后再push push之后 git stash pop 把之前放入堆栈的c拿出来 继续下一波操作
10git commit -m "提交的备注信息" // 提交到仓库
11若已经有若干文件放入仓库,再次提交可以不用git add和git commit -m "备注信息" 这2步, 直接用
12git commit -am "备注信息" // 将内容放至仓库 也可用git commit -a -m "备注信息"
13* git commit中的备注信息尽量完善 养成良好提交习惯 例如 git commit -m "变更(范围):变更的内容"
对比工作区,暂存区,仓库的差异
1git diff // 查看变更 工作区与暂存区的差异比对
2git diff --cached // 暂存区与提交版本的差异
3git diff HEAD // 工作区与仓库中最后一次提交版本的差别
4git diff 版本哈希值 版本哈希值 // 查看这2个版本哈希之间的区别
5或者 git diff HEAD~数字 HEAD~数字
6
7git tag tt HEAD~4 给倒数第5次提交打一个tag tag名字是tt
8git diff tt 就是倒数第5个版本与第一个版本之间的差异
9git diff --cached tt 暂存区与倒数第5个版本之间的比对
查看提交信息
1git show HEAD // 查看最后一次提交修改的详细信息 也可以用git show 哈希值 查看对应的内容
2git show HEAD^ // 查看倒数第二次的提交修改详细信息
3git show HEAD^^ 或者git show HEAD~2 查看前2次变更
4git show HEAD 或 git show 哈希值 或者git show tag(标签名) 都可以查看最近一次提交的详细信息
查看信息
1git log --pretty=format:'%h %ad | %s%d [%an]' --graph --date=short
2// 获取git log里的树形详细信息 包括hasg 日期 提交信息 提交人等
3git log --oneline //拉出所有提交信息 q是退出
4git log -5 // 查看前5次的提交记录
5git log --oneline -5 // 打印出的日志里面只有哈希值和修改的内容备注
6git log 文件名 // 查看该文件的提交
7git log --grep // 想过滤看到的内容 过滤日志
8git log -n // 查看近期提交的n条信息内容
9git log -p // 查看详细提交记录
回撤操作
1git commit --amend -m "提交信息" // 回撤上一次提交并与本次工作区一起提交
2git reset HEAD~2 --hard // 回撤2步
3git reset --files // 从仓库回撤到暂存区
4git reset HEAD // 回撤暂存区内容到工作目录
5git reset HEAD --soft 回撤提交到暂存区
6git reset HEAD --hard // 回撤提交 放弃变更 (慎用)
7git reset HEAD^ // 回撤仓库最后一次提交
8git reset --hard commitid // 回撤到该次提交id的位置
9
10git push -f -u origin 分支名 所有内容都回撤完了 将回撤后的操作强制推送到远程分支
标签操作
1git tag // 查看列出所有打过的标签名
2git tag -d 标签名 // 删除对应标签
3git tag 标签名字 // 在当前仓库打个标签
4git tag foo -m "message" // 在当前提交上,打标签foo 并给message信息注释
5git tag 标签名 哈希值 -m "message" // 在某个哈希值上打标签并且写上标签的信息
6git tag foo HEAD~4 // 在当前提交之前的第4个版本上 打标签foo
7git push origin --tags // 把所有打好的标签推送到远程仓库
8git push origin 标签名 // 把指定标签推送到远程仓库
9git stash // 把暂存区的内容 暂时放在其他中 使暂存区变空
10git stash list // 查看stash了哪些存储
11git stash pop // 将stash中的内容恢复到当前目录,将缓存堆栈中的对应stash删除
12git stash apply // 将stash中的内容恢复到当前目录,不会将缓存堆栈中的对应stash删除
13git stash clear // 删除所有缓存的stash
14git pull --tags // 把远程仓库的标签也拉取下来
15git push origin :refs/tags/远程标签名 // 删除远程仓库的标签
分支
1git branch 分支名 // 新建分支
2git branch // 查看当前所有分支
3git checkout 分支名 // 检出分支
4git checkout -b 分支名 // 创建并切换分支
5git checkout commitId 文件名(文件路径下的文件名) 还原这个文件到对应的commitId的版本
6(例如src/page/attendance/attendanceSum.vue我想把它还原到2个版本之前 首先git log src/page/attendance/attendanceSum.vue找到对应想要还原的版本
7复制版本提交的commitID 然后执行git checkout commitID src/page/attendance/attendanceSum.vue
8这样就把attendanceSum.vue这个单个文件 还原到了对应版本)
9git branch -v // 查看分支以及提交hash值和commit信息
10git merge 分支名 // 把该分支的内容合并到现有分支上
11git branch -d 分支名 // 删除分支
12git branch -D 分支名 // 强制删除 若没有其他分支合并就删除 d会提示 D不会
13git branch -m 旧分支名 新分支名 // 修改分支名
14git branch -M 旧分支名 新分支名 // 修改分支名 M强制修改 若与其他分支有冲突也会创建(慎用)
15git branch -r // 列出远程分支(远程所有分支名)
16git branch -a // 查看远程分支(列出远程分支以及本地分支名)
17git fetch // 更新remote索引
18git push -u origin 分支名 // 将本地分支推送到origin主机,同时指定origin为默认主机,后面就可以不加任何参数使用git push 也可解决 git建立远程分支关联时出现fatal ... upstram的问题
发布日期:2023-04-03 22:49 字数:525 用时
tags:Git
标签云
alpine(1) api网关(1) async(1) await(1) centos(4) cli(1) client-go(1) debug(1) docker(10) docker-compose(1) dockerfile(1) embed(1) es6(1) etcd(1) etcdctl(1) freemesh(2) git(6) go(5) go-zeus(5) goland(2) golang(7) grafana(2) grpc(5) grpcurl(1) homebrew(1) homedir(1) http(2) hugo(1) java(2) javascript(3) job(1) js(1) json(1) k8s(16) k8s部署指南(1) kubebuilder(1) kubectl(4) kubernetes(1) linux(2) localecompare(1) lombok(1) metrics(2) mock(1) mysql(1) npm(1) nsenter(1) nvm(1) pnpm(2) pprof(1) prettier(1) prometheus(2) protobuf3(1) protoc(1) qiankun(1) request(1) scss(1) servicemesh(1) spring(1) springcloud->freemesh(1) ssh(2) systemctl(1) tcpdump(1) typescript(2) vite(2) vscode(2) vue(8) vue-admin(2) vue3(1) webssh(1) xtermjs(1) xxl-job(1) yarn(1) zookeeper(1) 云原生(4) 云原生框架(1) 介绍(1) 单体架构->freemesh(1) 单元化(1) 博客(1) 压缩(1) 可观测(1) 后台管理系统(1) 命名规范(1) 多云多活(1) 如水网(1) 安全(1) 安装(1) 容器(2) 开发联调神器(1) 微前端(1) 微服务(2) 微服务架构->freemesh(1) 微服务框架(1) 快速开始(1) 控制面(1) 数据面(1) 文集(2) 服务发现(1) 服务网格(1) 流量泳道(1) 流量管理(1) 监控告警(1) 端口映射(1) 证书(1) 负载均衡(1) 配置(1)