git如何使用?

## 开发中关于文件的问题

- 文件丢失问题

- 多人协同开发,项目代码合并问题

- 异地开发,代码提交问题

- 需求不明确导致的版本杂乱

+ 完成了项目的第一个版本

+ 完成了项目的第二个版本,在第一个版本的基础上添加了功能A

+ 完成了项目的第三个版本,在第一个版本的基础上添加了功能B

+ 完成了项目的第四个版本,在第二个版本的基础上添加了功能C

+ 完成了项目的第五个版本,在第三个版本的基础上添加了功能D

+ ...

## git版本管理器

- 可以处理上面的问题,git是管理项目版本的

- git就是一个管理项目文件的工具

- 可以管理项目版本,和回退版本

### gitHub 和gitee

- gitHub

+ 是一个世界级的开源网站,我们可以提价项目代码

+ gitHub也可以看做和 `百度贴吧` 一样,很多人可以在这个网站上交流,但是在gitHub上交流的都是程序员

+ gitHub也可以看做和 `百度网盘` 一样,可以向这个网站提交代码文件

+ gitHub也可以看做 个人履历

+ gitHub只接受git方式提交代码数据

- gitee

+ 就是中国的gitHub,网站都是中文的

+ 其他的都是和gitHub差不多,但是在代码提价的时候会有差异

### 名词解释

- 仓库:被git管理的文件夹

+ 本地仓库:本地被git管理的文件夹

+ 远程仓库:远程电脑(gitHub和gitee)上被git管理的文件夹

- 推送:将本地仓库的文件上传到远程仓库

- 拉取:也叫做同步,将远程仓库的文件下载到本地仓库

## git使用

### git安装

- 安装完毕后,git是在命令行中使用的

### 初始化仓库

- 我们需要让git来管理我们的文件夹中的文件

- 在对应的文件夹目录的命令行中执行:`git init`

- 会在目录中出现一个.git的隐藏目录

- 初始化仓库后会将仓库分为三个区

- 工作区:就是我们写项目源码的文件夹

- 暂存区:需要将项目文件存到历史去之前存放的地方

- 历史区:项目代码压形成历史版本就是在历史区

+ 想要项目中的文件形成历史版本并记录,则需要先添加到暂存区,再将暂存区的内容添加到历史区才能形成历史版本(项目版本)

- 查看仓库的状态:`git status`

- 仓库中两个特殊的文件

- `.gitignore`文件:这个文件就是 git 的`黑名单`,将不想要被git管理的文件或文件夹名写到这个文件中

- `.gitkeep`文件:git默认不会管理仓库中的空文件夹,如果想要被git管理这个空文件夹,则可以在这个空文件夹中添加一个`.gitkeep`

### 将工作区的文件添加到暂存区

- 指令:`git add 文件`

- `git add ./html/index.html` 将index.html文件添加到暂存区

- `git add ./css/*` 将css文件夹添加到暂存区

- `git add --all` 将所有文件都添加到暂存区

+ 简写:`git add .` 将所有文件都添加到暂存区

### 将暂存区文件拿回到工作区

- `git reset HEAD -- ./html/index.html ` 将文件拿回到工作区

- `git reset HEAD -- ./css/*`将css文件夹拿回到工作区

- `git reset HEAD -- .` 将暂存区所有内容拿回到工作区

### 将暂存区的添加到历史区,形成历史版本

- `git commit -m '版本注释'` 添加到历史区形成历史版本

+ 注意:如果是第一个安装git在提交到历史区的时候,会报错

+ 只需要设置一次git的配置,设置用户名和邮箱

+ `git config --global user.email "写你的邮箱"`

+ `git config --global user.name "写你名字"`

- `git log` 查看最近版本的历史记录信息

```js

// 版本号

commit 7b72048b116a8a2b663cb818511ebcec0cea5de0 (HEAD -> master)

// 作者

Author: leon <leoncoder.163.com>

// 提交时间

Date: Thu Mar 3 11:06:56 2022 +0800

// 版本注释

版本1

```

- 当提交到历史区后,修改工作区文件的内容,则git管理这次修改后的文件

- 需要添加到历史区形成版本

+ `git add .` 添加到暂存区

+ `git commit -m '版本二'` 添加到历史区形成版本

- 查看版本信息 `git log`

```js

commit 0dfa531b8c23dfe68a31c59641892beeb7b43a0b (HEAD -> master)

Author: leon <leoncoder.163.com>

Date: Thu Mar 3 11:12:55 2022 +0800

版本二

commit 7b72048b116a8a2b663cb818511ebcec0cea5de0

Author: leon <leoncoder.163.com>

Date: Thu Mar 3 11:06:56 2022 +0800

版本1

```

#### 版本回退

- 将工作区的代码版本回退到历史记录中的某一个版本代码

- 使用指令:`git reset --hard 要回退的版本号` 回退到指定的版本

- `git reset --hard HEAD^` 回退到上一个版本(上一次提价操作的版本)

- 在仓库的.git/logs/HEAD文件中记录了所有版本的变更(可以查看所有的版本号)

## 分支

- 默认打开所在的就是主分支master(main)

+ 分支之间互相不会影响各自版本的代码

- 创建分支

+ `git branch 分支名称`

+ 创建分支默认会将所在的分支代码版本复制到新的分支中

- 查看分支

+ `git branch` 查看所有分支,前面有*号的就是当前所在的分支

- 切换分支

+ `git checkout 分支名称` 切换到指定的分支

- 合并分支

+ `git merge 分支名称` 只能在当前分支合并别的分支

- 删除分支

+ `git branch -d 分支名称`

## 推送

- 将本地仓库的版本上传到远程仓库

- 要有一个远程仓库(gitee或gitHub)

- 添加远程仓库地址

- `git remote add origin 你自己的远程仓库地址`

+ `remote` 远程

+ `add` 添加

+ `origin` 仓库地址(变量)

- 上传(推送)

- `git push -u origin "master"`

+ `push` 推送

+ `-u` 记住密码,下次推送不用填密码

+ `origin` 之前添加的远程仓库地址

- 注意:第一次推送gitee的时候会自动弹出 用户名和密码的校验窗口

+ 如果是第一次推送gitHub则需要用户名和密码的校验和 登录的token的校验(要自己先生成token)

## 克隆和拉取

- 克隆就是下载仓库的项目文件

- 克隆可以克隆别人的公开仓库

- 也可以克隆自己的仓库

- `git clone 远程仓库地址`

+ 克隆下载别人的项目修改之后,不能上传到别人的仓库,但是自己的可以

- 如果之前克隆或上传过,后续需要再下载远程仓库中最新的版本代码则,只需要拉取 git pull

## 冲突

- 在上传到远程仓库的时候

- 本地仓库的历史版本和远程仓库的历史版本不一致 就是发生冲突

- 我们可以拉取远程仓库的最新版本,在和本地比对,解决冲突后再提交上传

- `git pull` 我们在拉取的时候,有可能会覆盖本地的代码版本(有风险)

- 可以通过`git fetch` 来获取远程仓库最新代码到新的分支中

- `git fetch origin master:tmp` 将远程仓库的最新版本代码拉取到本地中临时开的tmp分支中

- `git diff tmp ` 主分支和临时分支tmp比较差异(发现了差异解决冲突)

- `git merge tmp` 将改完后的代码合并到主分支 然后提交上传

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值