全局配置
Git config —global user.name ‘’
Git config —global user.email ‘’
Git config —list 查看配置状态
全过程
初次建立项目
新增文件 - 提交
完成一次新增提交到本地
- 初始化 - git init
- 新增文件 01.txt
- 查看状态 - git status (未提交暂存)
- 添加到暂存区 - git add 01.txt
- 提交带本地仓库 - git commit -m ‘第一次提交’
查看提交日志 - git log (可以看到提交记录 更多查看日志方法看下方(查看 (日志、文件)))
修改文件 - 提交
完成一次修改提交本地
修改文件 01.txt
添加当前目录 - git add . -> git commit -m ‘第二次提交’
或者 同时添加当前目录并提交:git commit -am ‘’删除文件(相当于修改) - 提交
完成一次删除文件提交本地
新增 02.txt 文件并提交 (用于实现删除)
手动本地删除文件后 => add️->暂存 + commit->本地仓库
或 命令删除文件并提交到暂存 => git rm 02.txt非暂存区文件 - 撤销
完成一次非暂存区的撤销
修改01.txt内容 或者 删除01.txt文件
取消文件:git restore 01.txt || git restore . (恢复当前目录所有)暂存区文件 - 撤销
完成一次暂存区的撤销
再次修改 01.txt -> git add . -> 想取消此次暂存
取消某文件暂存:git restore —staged 01.txt || git restore —staged . (恢复当前目录所有)
或者 取消上一次操作:Git reset HEAD 01.txt
区别:前者只能移除暂存区文件,后者commit操作也可移除本地仓库 - 版本指定回退
完成一次本地版本回退
发现bug 需要回退到以前版本找原因
查看所有版本操作日志(包括回退后):git reflog (因为查看日志拿hash来回退,所有查看日志)
回退到指定hash版本:git reset —hard 1e2d764 (更多版本回退方法看下方(版本回退))
推送到远程仓库
第一次代码写完推送到远程仓库
绑定远程仓库:git remote add origin https://github.com/xiaoshi8715553/gitTest.git
指定推送到远程:git push -u origin master(本地仓库名) (将本地的master分支推送到origin主机,同时指定origin为默认主机,后面就可以不加任何参数使用git push了。)
修改提交后只需要 git push即可推送已有项目 -远程仓库文件(gitte)
克隆主干项目:git clone http/ssh地址 (此时地址拿到的分支是啥就是啥,假如现在拿到的就是master)
克隆分支:git clone -b dev(分支名) http/ssh地址 (-b表示要从分支下载)
直接在master上开发时
不能在master修改提交,此时新建一个本地分支, 该做法只有一个远程master分支 不建议
新建本地分支名为dev并且切换:git checkout -b dev
查看所有本地分支:git branch (此时可以看到切换到dev)
修改代码 -> 合并主干git merge master -> 解决冲突 ->提交代码
切换回master:git checkout master
master合并dev分支:git merge dev在分支上开发时
已有的远程分支直接修改上传 不需要本地再分支(例如:INF00001/Dan_Lin)
无远程分支时
新建本地分支名为dev并且切换:git checkout -b dev (上边操作已经创建 此处不多创建)
修改内容 -> 将新分支推送到远程仓库->
推送到远程仓库分支名为dev:git push origin dev (相当于新增一个远程仓库分支dev)
想删除dev远程分支
删除远程分支(本地还保留):git push origin :dev已有别人的远程分支时
手动在gitte创建一个dev2远程分支(已有别人的远程分支)
- 获取远程仓库最新状态(否则此时看不到dev):git fetch
- 拉取远程分支dev2并在创建本地分支dev2(提交后就是一个远程新分支):
- git checkout -b dev2(本地) origin(之前绑定的远程仓库别名)/dev2(远程)
- 修改文件内容,add->commit->git push 下图应该是dev2的
提交远程分支时冲突解决
- 修改文件内容,add->commit->git push ->发现冲突,原来是别人比你先提交了代码
- 解决冲突 - 先拉取最新,看别人与你代码冲突地方
- 拉取:git pull (将远程主机的最新内容拉下来后直接合并)

- 解决后 add->commit->git push
- 所以最好先git pull 拉取后再合并
查看(日志、文件)
查看当前版本日志:Git log
日志一行查看:Git log —pretty=oneline
查看所有版本操作日志:Git reflog
查看git本地仓库文件目录:Git ls-files
Diff查看
查看文件提交状态:Git status
git本地库与工作区的区别(未添加到暂存区):Git diff HEAD — xx
新增修改删除暂存&提交
添加:Git add xx
当前目录:Git add .
提交:Git commit -m ‘’
同时添加提交:Git commit -am ‘’
删除1:本地删除文件后 => add️ + commit
删除2:本地删除文件后 => Git rm xx
移除暂存区文件
取消某文件暂存:Git restore —staged xx
取消上一次操作:Git reset HEAD xx
区别:前者只能移除暂存区文件,后者commit操作也可移除
版本回退
回退^个版本:Git reset —hard HEAD^
回退~个版本:Git reset —hard HEAD~2
回退到指定hash版本:Git reset —hard hash(1e2d764)
分支操作
查看分支
查看所有本地分支:git branch
查看远程所有分支:git branch -r
查看本地与远程分支:git branch -a
本地分支操作
????本地分支切换切换到:git branch -M xx
切换到指定分支:git checkout branch
新建分支并且切换:git checkout -b newb_branch
删除分支:git branch -d branch
合并分支:git merge branch
重命名分支,如果newbranch存在可使用-M强制重命名:git branch -m|-M oldbranch newbranch
远程分支操作
origin 之前绑定的远程仓库别名
推送本地分支到远程:git push origin branch_name || git push
删除远程分支(本地还保留):git push origin :remote_branch
拉取远程分支并在本地创建(提交后就是一个远程新分支):git checkout -b local_branch origin/remote_branch
仓库操作
本地仓库操作
拉取最新版本文件:Git checkout xx
拉取最新版本所有:Git checkout .
远程仓库操作
绑定远程仓库:git remote add origin https://github.com/xiaoshi8715553/gitTest.git
拉取:Git pull (将远程主机的最新内容拉下来后直接合并)
获取最新状态:git fetch (将远程主机的最新内容拉到本地,用户在检查了以后决定是否合并到工作本机分支中)
推送本地分支至远程:Git push origin xx本地 || 分支
推送本地到远程仓库:Git Push
标签(版本)
添加标签:
默认最后一次提交记录:git tag v1. 0 
指定版本添加标签:Git tag v1. 0 hash
提交描述信息:Git tag -a 版本 -m ‘描述信息’ hash
推送标签到远程:
指定推送:git push origin v1. 0
推送所有:git push origin —tags
删除标签:
删本地标签:git tags -d v1. 0
删远程标签本地还在:git push origin :refs/tags/v1. 0
SSH 公司提供连接文档
生成SSH(id_rsa.pub文件-公钥):cmd中输入 ssh-keygen -t rsa -C “your_email@example.com”
设置githubSSH
监测:ssh -T git@github.com
快捷键
拷贝:Ctrl + insert
粘贴:Shift + insert
