目录

  • 下载和安装
  • git 配置
  • git 的基础知识
  • Git 目录(仓库)
  • git 的基本命令行
  • git init
  • git add
  • git commit
  • 查看当前暂存区的状态
  • 查看历史记录
  • 版本回退
  • git branch
  • git的分支操作:
  • 本地仓库上传到远程仓库
  • git的ssh(密钥) 链接
  • 远程仓库下载到本地
  • 分支命名规范
  • 标签管理
  • vscode操作git


下载和安装

下载:

官网下载 https://git-scm.com/

国内较快地址 https://npm.taobao.org/mirrors/git-for-windows/

检测是否成功安装

1、鼠标在桌面或者文件夹中任意位置右键,出现 git bash here 和git gui here都表示成功。

2、打开CMD 输入 git --version 出现版本号表示成功。

git 配置

git安装成功后, 需要进行全局的配置, 配置的是git的用户名和 邮箱地址 , 执行一下命令

git config --global user.name 'git的用户名'
git config --globale user.email 'git注册绑定的邮箱'

git 的基础知识

已提交(committed)、已修改(modified) 和 已暂存(staged)。

已修改表示修改了文件,但还没保存到数据库中。

已暂存表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。

已提交表示数据已经安全地保存在本地数据库中。

工作区

工作区是对项目的某个版本独立提取出来的内容。 这些从 Git 仓库的压缩数据库中提取出来的文件,放在磁盘上供你使用或修改。(带有隐藏git文件的文件夹)

暂存区

暂存区是一个文件,保存了下次将要提交的文件列表信息,一般在 Git 仓库目录中。 按照 Git 的术语叫做“索引”,不过一般说法还是叫“暂存区”。

在git中怎么启动mysql git怎么运行_远程仓库

Git 目录(仓库)

Git 仓库目录是 Git 用来保存项目的元数据和对象数据库的地方。 这是 Git 中最重要的部分,从其它计算机克隆仓库时,复制的就是这里的数据。

git 的基本命令行

git init

git init 初始化仓库在第一次本地上传到远程时需要执行的,会出现一个 git 的隐藏文件夹

git add

git add 提交文件到暂存区;

# 提交单一的文件
git add 文件名 

# 提交的全部文件
git add .

git commit

git commit 把暂存区的文件提交到本地仓库

git commit -m '提交的备注信息'

查看当前暂存区的状态

git status
git ls-files  默认是显示暂存区中全部文件的路径,有点像查看本地仓库文件目录(此功能已半弃用)

注意:当文件提交到暂存区以后,你又修改了文件的内容,那么需要重复上述步骤;git add -->git commit

查看历史记录

记录是从 最近修改 到 最远

#方式(1) 查看的简略的历史(有分页效果)
git log

#方式(4) 查看详细的历史纪录
git reflog

#方式(2)查看简略的历史记录(一页显示完)
git log --pretty=oneline
#方式(3)查看更加简略的历史记录
git log --oneline

在git中怎么启动mysql git怎么运行_暂存区_02


当历史记录过多的时候,一页展示不下:

去下一页: 空格

上一页:b

到尾页了,显示END

退出:q

版本回退

# 回退到指定的版本
git reset --hard 版本号

# 回退到上一个版本
git reset --hard HEAD^ 

# 回退到n个版本之前 num 是具体的数值,代表回退的版本
git reset --hard HEAD~nu'm

在git中怎么启动mysql git怎么运行_github_03

注意 :本地库的版本变化的时候,暂存区,工作区,也会跟着变化,
所以我们回退了版本,能直观的在工作区文件看到回退的内容

需要了解的,不用

mixed参数

git reset --mixed

本地库指针移动的同时,重置暂存区,但是工作区不动,

在git中怎么启动mysql git怎么运行_git_04

soft参数
本地库指针移动的时候,暂存区和工作区都不动

【删除文件操作/找回本地库删除的文件】

注意:当你文件上传到本地仓库后,把工作去中的文件手动删除(代码删除是,r m 删除的文件名 )了,

那么只是删除了工作去中内容,

还需要将删除操作同步到暂存区(git add 删除的文件名)

将删除操作同步到本地库(git commit -m “提交的信息”)

,这样三个地方的文件都删除了

(但需要注意,并不是真正的删除了,而是往前走了一个版本)

在git中怎么启动mysql git怎么运行_暂存区_05


【所以即使你删除了工作区的文件,仍可找回】

找回本地库中删除的文件,实际上就是将历史版本回退到刚才添加文件的那个版本即可

在git中怎么启动mysql git怎么运行_远程仓库_06

如果你更改了工作区内容,又不知道和暂存区是不是一样,那么可以git diff 文件名,

将工作区中的文件,和暂存区文件比较

在git中怎么启动mysql git怎么运行_暂存区_07

git diff 比较将工作区中的文件,和暂存区所有文件比较

还可以
git diff 历史版本号码 文件名 来比较暂存区和工作区内容

clear清空命令行界面

git branch

在版本控制中,使用多条线同时推进多个任务,这里面说的多条线,就是分支

在git中怎么启动mysql git怎么运行_暂存区_08

分支并行开发,互不影响,本地分支隶属于本地仓库

git的分支操作:

关于分支的一些操作的形象解释

查看分支 创建分支 切换分支 删除分支 合并分支

# 查看分支列表,当前所在的分支名前边会有一个 * 进行标注
git branch 
git branch -v    查看分支并显示分支里文件版本号及备注信息

#查看当前分支的文件名的具体内容
cat   01.txt(文件名)

# 切换分支
git switch  分支名          git checkout 分支名

# 拉取远程的分支到本地
git pull origin 远程分支名

# 创建并检出分支(创建一个分支,然后切换到该分支)
git checkout -b 分支名

# 单独创建分支
git branch 分支名

# 给新创建的分支改名字
git branch -m left01 leaf01
              旧名     新名

# 删除分支
git branch -d 分支名

# 合并分支: 需要注意操作的分支, 把a 分支 合并到 b分支上,需要在b分支上执行该命令
合并是把a分支文件给b分支,a分支文件依然还在
git merge -m '备注信息' 分支名
git merge -m '备注信息' --no-ff 分支名

# 推送本地分支到远程仓库
git push origin 分支名

# 删除远程分支(本地分支还在)
git push origin --delete 分支名
git checkout除了可以操作分支,它还可以操作文件。这条命令可以重写工作区,是一个很危险的命令。

注意: 你创建分支后,这个新分支的内容与主分支是对应的,也就是一样,它不是空的

  • 解决冲突:

在git中怎么启动mysql git怎么运行_git_09


在git中怎么启动mysql git怎么运行_github_10

解决:人为决定,留下想要的即可

本地仓库上传到远程仓库

给远程库取别名

查看别名

git remote -v

在git中怎么启动mysql git怎么运行_github_11


然后将本地仓库内容上传到远程仓库

git push -u origin(是别名) master(写分支名)

在git中怎么启动mysql git怎么运行_在git中怎么启动mysql_12


如果这里出现报错:出现这个问题一般是由于你新建的项目的README.md不在本地

【温柔型方案】

解决:先同步到本地(保证本地的文件与远程一致,在其上面进行修改后在推送远程)
git pull --rebase origin master
通过git pull 先将本地库更新到与远程库一致的版本,但要注意本地库后来做的修改可能被覆盖,最好使用git fetch(不会自动合并),查看更新情况再有选择合并,或者先将本地库修改过的文件备份,git pull后再重新修改;
再运行git push即可成功。

【暴力型方案】

git提供了一种强制上传的方式:git push -f ,它会忽略版本不一致等问题,强制将本地库上传的远程库,但是一定要谨慎使用,因为-f会用本地库覆盖掉远程库,如果远程库上有重要更新,或者有其他同伴做的修改,也都会被覆盖,所以一定要在确定无严重后果的前提下使用此操作。

如果执行某个指令出现 提示输入 用户名和密码的操作:
输入git的用户名和密码,如果密码错误,则需要去用户凭据管理中进行修改密码或者删除用户凭据(控制面板 ==》凭据管理器 ===》 (wind10) windows凭据管理 ====》 普通凭据 ====》 找到自己的凭据 ,可以编辑 或者删除 )

git push -u 与不带u两者区别?

加了参数-u后,以后即可直接用git push代替git push origin master
意思就是我们不用在后面加 origin + 要提交的分支名 ,直接 git push 即可

但是前提是,第一次提交需要加 -u参数后,后面的提交就直接可以 git push

git的ssh(密钥) 链接

  1. 创建ssh链接: 生成密钥; 输入一下命令,直接回车生成密钥
ssh-keygen -t rsa -C '邮箱地址'
  1. 获取公钥
    查看公钥: c/Users/Administrator/.ssh/id_rsa 在该目录下找到 id_rsa.pub (公钥) id_rsa(私钥)
  2. 把公钥部署到仓库中
    在远程仓库的个人中心 ==》 设置 ===》 安全设置 ===》 ssh公钥 ===》 标题自定义, 把公钥粘贴进入
  3. 把 本地仓库和远程仓库进行关联: 通过ssh 方式进行
git remote add 仓库名字 远程仓库的ssh地址
  1. 关联成功后,拉取远程仓库的内容到本地
git pull remote 仓库名字 分支名

远程仓库下载到本地

git clone 命令把远程仓库克隆到本地
建一个空的文件夹

git clone 远程仓库的地址(可以是https地址,亦可以是密钥)

克隆操作:可以做三件事

(1)初始化本地库

(2)将远程库完整的克隆到本地

(3)替我们创建远程库的别名

在git中怎么启动mysql git怎么运行_github_13


然后:拉取远程的分支到本地

git pull origin 远程分支名

这样就完成了将远程需要的内容克隆到本地

当a你修改完后,就要上传到远程,重复上面本地推送远程的操作
git push

git push 命令 把本地仓库的文件推送到远程(推送到对应的分支上)

git push

注意:因为你是在自己电脑操作,所以修改完上传不会出错,

实际开发中,会出错,

原因:项目经理创建了仓库,a程序员没有加入团队,但a程序员知道项目的地址,

下载并做好了项目,推送到远程仓库,就会报下面的错,但如果是同一台电脑则不会报错

在git中怎么启动mysql git怎么运行_暂存区_14

在git中怎么启动mysql git怎么运行_在git中怎么启动mysql_15

分支命名规范

1.主分支 —master
常见git仓库时会自动生成。一般来说,不要直接在master上面写代码,它只接受dev分支的合并。
master代码在实际项目中一般与线上的正式环境中的代码保持一致。

2.主开发分支 —dev
初始化项目之后,从master分支上开辟的新分支。一般也不直接在上面写代码,而是从各个功能分支上合并代码。
dev分支接受各个功能分支的代码后,进行测试,测试完成后合并到master分支上,在将master分支上的代码发布到正式环境。也就是我们常说的项目上线。

3.功能分支 —feature-XXX
是从dev分支上开辟的新分支。一般研发工作是在该分支上完成的。研发完成后,将其合并到dev分支上。假如开发购物车模块,分支名:feature-shopCar。

4.功能bug解决分支 —feature-XXX-fix-XXX
第二个XXX可以是bug的编号。 是从功能分支上开辟的新分支。bug修复后,再将其合并到功能分支上。
5.紧急bug解决分支 — hot-fix-XXX
直接从master分支上开辟的。进行紧急的bug修复。修复完毕以后,合并到mster分支上。

标签管理

在git中怎么启动mysql git怎么运行_git_16

  • 添加本地标签
  • 推送到远程

在git中怎么启动mysql git怎么运行_github_17


标签:就是将推送到远程的项目加一个版本号,内容和远程仓库的内容一样

在git中怎么启动mysql git怎么运行_github_18

在git中怎么启动mysql git怎么运行_在git中怎么启动mysql_19

  • 删除一个远程标签

在git中怎么启动mysql git怎么运行_git_20

  • 删除一个本地标签

vscode操作git

链接

在vscode分支的合并分支的操作中,想dev分支合并主分支master,那么需要在当前master分支下操作,(分支->合并分支)

在上一个分支基础上加新的内容新分支步骤

在git中怎么启动mysql git怎么运行_远程仓库_21


从需要的分支上创建一个分支,原来代码存在(正在更改的代码会提交在新的分支上)