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面板命令:按Q就行啦~

工作区

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

暂存区

暂存区是一个文件,保存了下次将要提交的文件列表信息,一般在 Git 仓库目录中。 按照 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

在这里插入图片描述
当历史记录过多的时候,一页展示不下:
去下一页: 空格
上一页:b
到尾页了,显示END
退出:q

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

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

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

在这里插入图片描述

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

需要了解的,不用
mixed参数
git reset --mixed
本地库指针移动的同时,重置暂存区,但是工作区不动,
在这里插入图片描述

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

【删除文件操作/找回本地库删除的文件】
注意:当你文件上传到本地仓库后,把工作去中的文件手动删除(代码删除是,r m 删除的文件名 )了,
那么只是删除了工作去中内容,
还需要将删除操作同步到暂存区(git add 删除的文件名)
将删除操作同步到本地库(git commit -m “提交的信息”)
,这样三个地方的文件都删除了
(但需要注意,并不是真正的删除了,而是往前走了一个版本)
在这里插入图片描述
【所以即使你删除了工作区的文件,仍可找回】
找回本地库中删除的文件,实际上就是将历史版本回退到刚才添加文件的那个版本即可
在这里插入图片描述

如果你更改了工作区内容,又不知道和暂存区是不是一样,那么可以git diff 文件名,
将工作区中的文件,和暂存区文件比较
在这里插入图片描述

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

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

clear清空命令行界面

git branch

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

在这里插入图片描述分支并行开发,互不影响,本地分支隶属于本地仓库

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 merge origin/分支名           (这是远程分支合并到b分支)
# 推送本地分支到远程仓库
git push origin 分支名

# 删除远程分支(本地分支还在)
git push origin --delete 分支名
#更新远程仓库所包含分支
git fetch  (如果合并代码时,这一步是必须先执行的,不然代码合并不是最新的)
git checkout除了可以操作分支,它还可以操作文件。这条命令可以重写工作区,是一个很危险的命令。

git checkout (git log 获取到的哈希值可以下载历史版本)

git回退到历史指定版本并推送到远程

找到要回退的版本号

git log  是信息上面一条就是版本号

3,将本地代码回退到指定版本号

git reset --hard 版本号

4,将本地代码同步到远程仓库

git push -f
git push -f命令用于将本地的代码强制推送到远程仓库,以本地为准

下载历史版本
注意: 你创建分支后,这个新分支的内容与主分支是对应的,也就是一样,它不是空的
分支的合并之后需要push一下推送到远端

  • 解决冲突:

在这里插入图片描述
在这里插入图片描述解决:人为决定,留下想要的即可

本地仓库上传到远程仓库

给远程库取别名

查看别名

git remote -v

在这里插入图片描述
然后将本地仓库内容上传到远程仓库

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

在这里插入图片描述
如果这里出现报错:出现这个问题一般是由于你新建的项目的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 pull origin 远程分支名

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

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

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

git push

注意:因为你是在自己电脑操作,所以修改完上传不会出错,
实际开发中,会出错,
原因:项目经理创建了仓库,a程序员没有加入团队,但a程序员知道项目的地址,
下载并做好了项目,推送到远程仓库,就会报下面的错,但如果是同一台电脑则不会报错
在这里插入图片描述

在这里插入图片描述

分支命名规范

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分支上。

标签管理

在这里插入图片描述

  • 添加本地标签
    在这里插入图片描述
  • 推送到远程

在这里插入图片描述
标签:就是将推送到远程的项目加一个版本号,内容和远程仓库的内容一样
在这里插入图片描述

在这里插入图片描述

  • 删除一个远程标签

在这里插入图片描述

  • 删除一个本地标签
    在这里插入图片描述

vscode操作git

链接

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

在上一个分支基础上加新的内容新分支步骤
在这里插入图片描述
从需要的分支上创建一个分支,原来代码存在(正在更改的代码会提交在新的分支上)

便捷操作(GIT缓存本地不想提交的代码)

GIT缓存本地不想提交的代码

  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值