git学习

git 基本概念

  • 工作区:仓库的目录。工作区是独立于各个分支的
  • 暂存区:数据暂时存放的区域,类似于工作区写入版本库前的缓存区。暂存区是独立于各个分支的
  • 版本库:存放所有已经提交到本地仓库的代码版本
  • 版本结构:树结构,树中每一个节点代表一个代码版本

环境配置

生成自己的SSH密钥,然后将公钥添加至远程仓库

复制代码
ssh-keygen -t rsa -C 'XXXX@163.com'

设置全局用户名

复制代码
git config --global user.name xxx

设置全局邮箱

复制代码
git config --global user.email xxx@163.com

查看系统配置

复制代码
git config --system --list

查看当前用户配置

复制代码
git config --global -list

库创建

本地库同步至远程库

将本地代码文件夹配置成git仓库

复制代码
git init

将本地仓库关联至远程库

复制代码
git remote add origin git@git.mi.com:xxx/XXX.git

关联后第一次推送master分支的所有内容

复制代码
git push -u origin master

远程库直接操作

将远程库下载到当前目录下

复制代码
git clone git@git.mi.com:xxx/XXX.git

切换目标XXX分支

复制代码
git checkout -t XXX

添加内容

将XX内容添加到暂存区

复制代码
git add XX

将暂存区内容提交到当前分支

复制代码
git commit -m "修正数据读取bug"

stash暂存

将工作区和暂存中尚未提交的修改存入栈中

复制代码
git stash

将栈中存储的修改回复到当前分支,但不删除栈顶元素

复制代码
git stash apply

删除栈顶存储的修改

复制代码
git stash drop

将栈顶存储的修改恢复到当前分支,同时删除栈顶元素

复制代码
git stash pop

查看栈中所有元素

复制代码
git stash list

将当前分支推送到远程分支

复制代码
git push -u

强制提交并覆盖远程仓库

复制代码
git push -f origin master

查看当前仓库状态

复制代码
git status

git版本

查看当前分支历史版本

复制代码
git log --pretty=online

查看HEAD指针的移动历史

复制代码
git reflog

删除命令

将文件从仓库所用目录中删除

复制代码
git rm -- cached XX

将xx文件从暂存区里删除

复制代码
git restore --staged xx

将xx文件尚未加入暂存区的修改全部撤销

复制代码
git checkout - XX

复制代码
git restore XX

代码回滚

将代码回归到上一个版本

复制代码
git reset --hard HEAD^

向上回滚两个版本

复制代码
git reset --hard HEAD^^

向上回滚10个版本

复制代码
git reset --hard HEAD~10

回滚到某一特定版本

复制代码
git reset --hard 版本号

远程仓库

将本地仓库关联到远程仓库

复制代码
git remote add origin git@git.mi.com:xx/xxx.git

推送远程分支

将本地分支推送到远程仓库 branch_name 分支

复制代码
git push origin branch_name 

第一次将分支推动到远程仓库

复制代码
git push -u origin branch_name

将本地branch_name分支对应到远程分支

复制代码
git push --set-upstream origin branch_name

将远程的branch_name1分支与本地的branch_name2分支进行合并

复制代码
git branch --set-upstream-to=origin/branch_name1 branch_name2

删除远程库branch_name分支

复制代码
git push -d origin/branch_name

将远程分支branch_name拉取到本地

复制代码
git checkout -t origin/branch_name

分支合并

将远程仓库的当前分支与本地

复制代码
git pull

将远程仓库的branch_name分支与本地仓库的当前分支进行合并

复制代码
git pull origin branch_name

删除远程仓库

复制代码
git remote rm origin

查看本地与远程仓库的关联情况

复制代码
git remote -v

分支命令

创建新分支

复制代码
git branch branch_name

查看所有分支和当前分支所处分支

复制代码
git branch

创建并切换到branch_name分支

复制代码
git checkout -b branch_name

创建一个分支branch_name1并将将远程branch_name分支拉取到本地

复制代码
git checkout -b branch_name1 origin/branch_name

切换到branch_name分支

复制代码
git checkout branch_name

将分支branch_name合并到当前分支上

复制代码
git merge branch_name

删除本地仓库的branch_name分支

复制代码
git branch -d branch_name

删除远程仓库的branch_name分支

复制代码
git push -d origin branch_name

将远程的branch_name1分支与本地的branch_name2分支对应

复制代码
git branch --set-upstream-to=origin/branch_name1 branch_name2
相关推荐
kyriewen9 小时前
别再每次都 Google 了:我整理了前端日常最常踩的 10 个 Git 坑,附速查表
前端·javascript·git
Elasticsearch14 小时前
深入解析 simdvec:Elasticsearch 如何利用神经网络和视频编解码 CPU 指令实现向量搜索
elasticsearch
Elasticsearch1 天前
一条命令。自然语言。你的 Elasticsearch 数据,直接进入终端
elasticsearch
vivo互联网技术2 天前
从 10 分钟到 1 秒:ES 深度分页任意跳页的三轮优化实战
服务器·数据库·redis·elasticsearch·深度分页
Elasticsearch2 天前
热力直达:使用 Elasticsearch 插件将 ES|QL 引入你的 Grafana 仪表板
elasticsearch
小猿姐2 天前
唯品会大规模数据库云原生实践:基于 KubeBlocks 管理数千实例的统一运维之路
运维·elasticsearch·云原生
A_Lonely_Cat3 天前
记一次 GitHub 幽灵协作者大清洗:强制重写 Git 历史与穿透 CDN 缓存实践
git·github
Elasticsearch3 天前
使用 Elastic Agent Builder 和 Sarvam AI 构建多语言语音 agent
elasticsearch
和你看星星5 天前
Git rerere:让重复冲突只解决一次
git