全局配置

Git config —global user.name ‘’
Git config —global user.email ‘’
Git config —list 查看配置状态

全过程

初次建立项目

新增文件 - 提交

完成一次新增提交到本地

  1. 初始化 - git init
  2. 新增文件 01.txt
  3. 查看状态 - git status (未提交暂存)
  4. 添加到暂存区 - git add 01.txt
  5. 提交带本地仓库 - git commit -m ‘第一次提交’
  6. 查看提交日志 - 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 (更多版本回退方法看下方(版本回退))
    image.png

    推送到远程仓库

    第一次代码写完推送到远程仓库
    绑定远程仓库: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表示要从分支下载)
    image.png

    直接在master上开发时

    不能在master修改提交,此时新建一个本地分支, 该做法只有一个远程master分支 不建议
    新建本地分支名为dev并且切换:git checkout -b dev
    查看所有本地分支:git branch (此时可以看到切换到dev)
    image.png
    修改代码 -> 合并主干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)
    image.png
    想删除dev远程分支
    删除远程分支(本地还保留):git push origin :dev

    已有别人的远程分支时

  7. 手动在gitte创建一个dev2远程分支(已有别人的远程分支)

  8. 获取远程仓库最新状态(否则此时看不到dev):git fetch
  9. 拉取远程分支dev2并在创建本地分支dev2(提交后就是一个远程新分支):
  10. git checkout -b dev2(本地) origin(之前绑定的远程仓库别名)/dev2(远程)
  11. 修改文件内容,add->commit->git push 下图应该是dev2的

image.png

提交远程分支时冲突解决

  1. 修改文件内容,add->commit->git push ->发现冲突,原来是别人比你先提交了代码
  2. 解决冲突 - 先拉取最新,看别人与你代码冲突地方
  3. 拉取:git pull (将远程主机的最新内容拉下来后直接合并)

image.png

  1. 解决后 add->commit->git push
  2. 所以最好先git pull 拉取后再合并

    查看(日志、文件)

    查看当前版本日志:Git log
    日志一行查看:Git log —pretty=oneline
    查看所有版本操作日志:Git reflog
    查看git本地仓库文件目录:Git ls-files

Diff查看

查看文件提交状态:Git status
git本地库与工作区的区别(未添加到暂存区):Git diff HEAD — xx
image.png

新增修改删除暂存&提交

添加: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)
image.png

分支操作

查看分支

查看所有本地分支: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

添加标签:

默认最后一次提交记录:git tag v1. 0
image.png
指定版本添加标签:Git tag v1. 0 hash
image.png
提交描述信息:Git tag -a 版本 -m ‘描述信息’ hash
image.png

推送标签到远程:

指定推送:git push origin v1. 0
推送所有:git push origin —tags
image.png

删除标签:

删本地标签: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