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
相关推荐
哈里谢顿17 分钟前
常见 git push 问题及解决方案
git
MarkGosling31 分钟前
【开源项目】轻量加速利器 HubProxy 自建 Docker、GitHub 下载加速服务
运维·git·docker·容器·开源·github·个人开发
Asu52021 小时前
思途SQL学习 0729
数据库·sql·学习
鼠鼠我捏,要死了捏1 小时前
Elasticsearch索引设计与性能优化实战指南
elasticsearch·性能优化·索引设计
千层冷面2 小时前
git中多仓库工作的常用命令
大数据·elasticsearch·github
一位搞嵌入式的 genius3 小时前
暑期自学嵌入式——Day10(C语言阶段)
linux·笔记·学习·嵌入式c语言
晨非辰5 小时前
#C语言——学习攻略:深挖指针路线(三)--数组与指针的结合、冒泡排序
c语言·开发语言·数据结构·学习·算法·排序算法·visual studio
先生沉默先5 小时前
Docker学习日志-Docker容器配置、Nginx 配置与文件映射
学习·nginx·docker
Aomnitrix6 小时前
【分布式版本控制系统】Git的使用
分布式·git
Brookty11 小时前
Java线程安全与中断机制详解
java·开发语言·后端·学习·java-ee