初识Git

一、安装Git

1.先去官网下载这个软件, 准备安装到本电脑中

Git

2.根据自己电脑系统下载此软件到本机

(1)最好安装在C盘。注意!不要安装在中文路径下==

(2)查看安装是否成功: 在任意文件夹右键, 查看是否有Git Base Here 选项, 有就成功了

二、为什么要学习 GIT

  1. 玩游戏一条命通关难度大吗? 很大

  2. 所以我们是不是要适当存档? 是的

  3. 那从0开始一次性就能把代码都写完? 中间肯定不能出错? 不能

  4. 所以我们需要写一段代码, 就存档保存一下!

  5. 我们在写项目的时候, 每天想要保存一个版本, 如果手动管理

但是,这样做其实不太好, 会有如下问题

1.操作麻烦: 每次需要复制, 粘贴, 重命名, 占磁盘空间

2.命名麻烦: 起不好名字, 都不知道这个文件夹和上个文件夹比修改了什么

3.存储麻烦: 如果电脑/磁盘损坏, 项目文件容易丢失

4.合并麻烦: 如果自己写项目还好, 但是很多人合作一个项目, 往同一个文件夹合代码是一件费时费力的事情

2.解决方案: 使用git这个版本控制工具软件

git是一款免费、开源的版本控制系统 ,用于敏捷高效地处理任何或小或大的项目。

作用: 1.文件存档备份   2.文件版本管理   3.多人协同合作(自动合并)

三、认识Git

1.git的三个区域

(1)工作区: 处理工作的区域---在你电脑里看到的目录

(2)暂存区: 临时存放的区域---在.git文件夹内的index中 (二进制记录)

(3)本地git仓库: 最终的存放区域---版本库:指的整个.git文件夹 (也认为是本地仓库)

四、Git配置(用户名,邮箱,SSH公钥)

1.安装git软件后, 了解配置全局用户名邮箱,以后提交时, 知道是谁提交的

git config --global user.name 你的用户名
git config --global user.email 你的邮箱地址

2.配置后, 可以运行如下命令查看是否成功

git config --list

3.生成密钥对,输入命令后按三次回车确定生成密钥

ssh-keygen -t rsa -C "邮箱地址"

然后打开我的电脑, C:\Users\用户\.ssh ,用VSCode打开这个带pub的文件,全选复制

 打开自己的码云仓库, 码云(头像)>设置>安全设置>ssh公钥

点击确定,进行身份验证,就完成公钥配置了哦 

 

最后一步,输入以下命令检测自己是否成功连接上码云

ssh -T git@gitee.com

 

五、Git分支

如果一个git仓库, 一个master分支上, 提交的记录很多, 什么功能都有, 不方便管理啊, 比如这样

会显得master (默认主分支) 显得很乱, 不方便管理/回退查找等, 功能越多, 项目越大, 越复杂。所以这个时候, 我们要在版本库里, 创建不同的分支, 来分别管理他们 (不同的分支之间, 是互相独立的)

编写相关业务, 先切换到版本库下的对应不同分支, 去写业务, 然后暂存, 提交, 都会在对应分支下, 产生提交记录, 不会影响到别的分支  。等某个模块开发完毕后, 可以把某个子分支的代码, 合并回到master主分支中, 项目开发完毕, 主分支里最有一次提交的记录就是我的完整项目。

5.2 分支的本质

1.分支其实就是一个叫HEAD的指针标记

2.每次代码提交, 此HEAD指针都会往后移动一次, 保证指向的(并且工作区里的)都是最后一次提交

3.比如刚才我们第二次提交后, HEAD指针指向这里, 也是工作区最后一次提交的版本

当我们敲击命令  git reset --hard a3bcab2  那么HEAD指针会移动,而且HEAD移动后, 会影响工作区里的代码

 

5.3   创建分支

  1. 现在已经有了"登录"和"主页"了, 我们来创建一个"注册"分支reg

  2. 创建分支命令如下, 语法↓

    # 创建分支
    git branch 分支名
  3. 注意: 创建后不会自动切换分支, 我们可以运行命令查看现在这个.git版本库里所有分支

    # 查看当前版本库所有分支
    git branch
    ​
    # 绿色带*代表, 你现在所处的分支

手动切换到分支上, 命令语法↓

==注意: 第一次创建并切换到此分支==, 这里你会发现master分支上的所有代码(和当前节点所有提交记录) 都被复制了过来, 在这个基础上, 接着往后开发就行, 不是你的页面不同碰!!

# 切换分支命令
git checkout 分支名

刚才操作后的结果图示:

5.4 分支下开发流程

1.那我们现在就可以在当前reg分支下来编写, 注册页面的逻辑代码, 例如新建reg.html文件, 并随便写点内容

2.然后暂存, 提交一次, 这次提交的记录会出现在这里, 如图

 3.所以, 以后在当前reg分支下开发, 就会在reg范围内, 每次提交产生一次版本记录, 但是不会影响到别的分支里

4.其实, 我们如果用的是git专用终端, 还可以在这里看到所在分支的名字

5.5 分支合并

1.当我们某个分支的业务开发完毕以后呢, 我们可以把分支里写好的代码, 合并到主分支/其他分支上。首先, 切换到你要合并到的目标分支上, 这里以master主分支为例

切换分支   git checkout master

2.合并命令语法:把目标分支名下的所有记录, 合并到当前分支下 ​ git merge 目标分支名

git merge reg

5.6  分支解决冲突

当我们在2个分支, 修改了同1个文件并==提交过==  再==合并==的时候, 就会产生冲突

先模拟一次冲突的制造

在master分支下, 修改login.html的某行代码, 并完成一次暂存提交;

切换到reg分支下, 也修改login.html的对应行代码, 并完成一次暂存提交

再切换回到master分支下, 用合并命令, 把reg分支下代码和变化合并过来

vscode中冲突的代码会长这样

这个时候, 要积极寻找对方是哪个人, 然后商量, 留下谁的? 手动删除掉<<<<<<和=和>>>>>>>>后, 重新暂存提交, 完成冲突解决  

接着我们, 暂存提交一次

5.7  删除分支

1.假如注册功能开发完毕, 代码已经合并到master分支上, 我们无需reg分支

命令如下

git branch -d 分支名

如果你当前分支代码 还有没合并到别的分支的, 则会报错

2.git全局配置删除命令

user.name 可以视情况删除哪个自己选

git config --unset --global user.name

 

5.8  git版本回退更多

如下命令

# 除了找到对应版本号之外, 我们还可以用内置的代号
# 回退到  "最近一次提交"   (但是要注意如果你已经回退了, 是回不到未来的, 回到未来需要指定版本号数字字母)
git reset --hard head~0
# 回退到  "上一次提交"
git reset --hard head~1
# 回退到  "上上次提交"
git reset --hard head~2
​
# 想退多少次, 先用git log --oneline 打印后根据注释信息, 自己数下回退几次 head~后面写几

以上命令还有个写法

# 回退到  "上一次提交"
git reset --hard head^
# 回退到  "上上次提交"
git reset --hard head^^
​
# 如果回退的太远, 一百个往前, 你不能写一百个^吧,  还是写head~个数吧

5.8.2  git版本回退-更优解:

reset其实会把未来的丢失掉, 如果推到远程仓库可能会有问题 (看下面情况做吧), 但是其实保证大家维护的同一个项目工程都是最新代码即可

比reset更好用的revert

 5.9  git常用忽略配置

六、Git基础命令

新文件夹 / 现有文件夹, 运行如下命令, 得到.git文件夹, 即可让git开始准备管理

(1)初始化 git 仓库

​git init

(2)一次性把所有变化文件, 放入暂存区

注意: add 后面有个空格, 此.的意思 , 当前目录下所有变化都暂存

git add .

(3)把暂存区内容, 提交到版本库, 命令如下

git commit -m '提交的内容说明'

(4)查看所有提交的日志记录, 命令如下

git log

(5)当我们的日志越来越多, 可能想要简化查看, 可以输入如下命令

git log --oneline  在一行显示简略信息

(6)如果改的代码过多, 忘记改过哪些了, 可以运行如下命令, 查看git仓库变化

git status

(7)回退命令语法如下,

git reset --hard 版本号

(8)查看 git 所有的操作记录, 包括你的reset记录

git reflog

(9)忽略规则

有的时候, 我们某些文件/文件夹, 不想让git进行跟踪管理这种场景下, 我们需要在.git文件夹隔壁, 来个叫做 .gitignore (固定名字)的忽略文件, 并写入忽略规则

可以编写如下这些规则

# 忽略某个指定文件
password.txt
​
# 忽略文件夹
css
​
# 忽略文件夹下的某个文件
css/index.js
​
# 忽略文件夹下某类文件
css/*.js

(10)创建分支

创建分支命令如下

git branch 分支名

(11)手动切换到分支上

==注意: 第一次创建并切换到此分支==, 这里你会发现master分支上的所有代码(和当前节点所有提交记录) 都被复制了过来, 在这个基础上, 接着往后开发就行, 不是你的页面不同碰!!

# 切换分支命令
git checkout 分支名
# 创建并切换分支
git checkout -b 分支名

(12)合并命令语法

# 把目标分支名下的所有记录, 合并到当前分支下
​
git merge 目标分支名

(13)删除命令如下

git branch -d 分支名

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值