概述
- git init:初始化仓库
git reset --soft
版本号A:指针指向版本号A,保留暂存区和工作目录中的修改,撤销之后的提交变成尚未提交状态。git reset --mixed
版本号A:指针指向版本号A,暂存区的内容会被保留,但是工作目录中的修改会被撤销。需要重新提交这些修改。(默认方式)git reset --hard
版本号A:指针指向版本号A,暂存区和工作目录中的修改都会被撤销,慎用,因为这将永久丢失之前的修改。- git checkout -b <分支A>:创建并切换到分支A,分支A从本地当前分支分出
- git branch:查看当前分支
- git branch <分支A>:创建新的分支A,分支A从本地当前分支分出
- git branch -a:查看所有分支名,并显示当前分支
- git branch -vv:查看本地当前分支和远程分支的对应关系
- git branch -u 远程库A/远程分支a:本地当前分支和远程库A/远程分支a建立对应关系
- git branch -d <分支a>:删除本地分支a
- git remote -v:远程库的地址
- git config --global user.name "Your Name":设置提交用户的用户名
- git config --global user.email "youremail@example.com":设置提交用户的邮箱
- git config --global --list:查看git全局配置
查看仓库信息
- git status:查看当前仓库的工作区和暂存区改变的状态
- git log:查看当前指针的历史提交记录与版本号
- git reflog:展示你执行的所有的Git命令记录
临时回溯
- master分支上执行git checkout 版本号A
- 切换到临时指针(HEAD detached at 版本号A)
- 临时指针指向版本号A
- git checkout master,切换到master分支,临时指针销毁
本地库操作
git add <file1><file2>···<dir1><dir2>···· | 把指定文件、文件夹的修改信息,提交给暂存区 |
git add . | 把所有文件夹和文件的修改信息,提交给暂存区 |
git rm指令 | 把文件从工作区中删除,暂存区会自动记录删除信息 不建议使用 我们可以直接手动删除文件 并且删除信息会自动保存在暂存区 |
git commit <file1><file2>···<dir1><dir2>···· -m "描述信息" | 把暂存区指定文件、文件夹的修改信息,提交给本地库 |
git commit -m "描述信息" | ①把暂存区的所有文件夹和文件的修改信息提交本地库 ②把暂存区的删除信息提交本地库 |
拉取和推送远程库
git clone <远程库> | 把远程库所有分支克隆到本地库 自动关联远程库分支和本地库分支 |
git pull | 从默认远程库中 拉取与本地当前分支a关联的远程分支b 并把远程分支b与本地当前分支a合并 还会更新远程分支的增删情况 |
git push | 把本地当前分支推送到默认远程库 并将其合并到与之关联的远程分支 |
git push -u <远程库A> <分支b> | 把新建的本地分支b推送到远程库A 在远程库A新建远程分支b 远程分支b合并本地分支b的代码 远程分支b和本地分支b建立关联 |
git push <远程库A> :<远程分支a> | 把远程库A的远程分支a删除 |
git checkout <分支a> | 本地存在分支a: 直接切换到分支a 本地不存在分支a,远程存在分支a: 创建本地分支a,并与远程分支a建立关联 本地不存在分支a,远程也不存在分支a: 报错 |
无冲突合并
- 分支A:a、b、c、d
- 分支B:a、b、c
- 分支A合并分支B:分支A无任何改变
- 分支B合并分支A:分支B添加了d版本
单指针-单分支
多指针-多分支
正常提交
- commit提交四次,依次生成A、B、C、D四个版本
- 创建新的testA指针,testA指针默认当前版本号D
创建新分支
- 切换指针testA
- 指针testA指向版本B,生成版本B1、B2
合并冲突分支
- 切换到master指针
- master指针与testA指针合并
- git会保留,master和testA的冲突部分
- 我们不进行处理,直接git add . & git commit -m "combine"
- testA线上独有的版本,会有序的添加到master线上
- master线的最后一个的版本:combine版本
//D版本
123456
123456
123456
123456
//B2版本
123456
123456
abcdef
abcdef
//combine版本
123456
123456
<<<<<<< HEAD
123456
123456
=======
abcdef
abcdef
>>>>>>> testA
VSCode使用git
初始化git仓库
修改区的操作
暂存区的操作
暂存区提交本地库
开启vscode模式
github
https://github.com/xxx ===》 https://github1s.com/xxx