1.介绍

1.1、git

        Git(读音为/gɪt/)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。[1]也是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。

官网下载:git

1.2、对比其他版本软件

SVN优缺点
  1. 优点:

    1. 集中式管理系统

    2. 管理方便,逻辑明确

    3. 易于管理,集中式服务器更能保证安全性

    4. 代码一致性非常高

    5. 适合开发人数不多的项目开发

  2. 缺点:

    1. 服务器压力太大,数据库容量暴增

    2. 如果不能连接到服务器上,基本上不可以工作,如果服务器不能连接上,就不能提交,还原,对比等等

    3. 不适合开源开发

git优缺点
  1. 优点:

    1. 适合分布式开发,强调个体

    2. 公共服务器压力和数据量都不会太大

    3. 速度快,灵活

    4. 任意两个开发者之间可以很容易的解决冲突

    5. 离线工作

  2. 缺点:

    1. 学习周期相对而言比较长

    2. 代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息

2、安装git软件

可以在常见的操作系统安装。

linux、mac 自带了git命令行,直接使用即可。

windows 需要手动安装

①双击打开安装包

图片

图片

图片

图片

图片

图片

图片

图片

图片

图片

图片

图片

图片

图片

图片

图片

图片

图片

3、git基本使用

3.0、git使用配置

安装完git之后,需要在git配置用户名和邮箱,理论上是可以随便填写的。

实际在生产环境中,需要根据分配给你的账号里的用户名和邮箱填写。方便统计代码提交量。

# 查看
git config --global user.name
git config --global user.email


# 设置
git config --global user.name   ***
git config --global user.email ***t@qq.com

3.1、git仓库初始化

仓库一般以一个项目为基准。

仓库存储代码的地方,记录代码版本。

哪里是需要代码管理的地方,在哪里执行。

目录结构内容不要太多,在子级目录中不要存在多级的.git文件夹

git init

图片

3.2、本地版本提交

工作区    当前操作的目录

暂存区    需要进行版本提交的临时存储区

版本库   存储了版本信息

图片

# 查看当前目录的状态
git status

# 工作区添加文件到暂存区
git add .

# 从暂存区回撤到工作区
git rm --cached xxx

# 暂存区提交版本库
git commit -m "注释"

# 查看版本库版本
git log

可能遇到的问题点:

vim  命令模式  插入模式   末行模式

在git commit时,忘记了加-m参数

图片

修改完毕之后,按esc键,退出插入模式,进入命令模式,再同时按shift+:,进入末行模式。

输入wq,保存退出

4、git远程仓库使用

为了能够方便进行代码的传递和共享,需要使用git远程仓库。

远程仓库必须要有一个仓库地址

国外仓库:github、gitlab

国内仓库:gitee、coding...

https://gitee.com/

注册一个gitee的账号,并登录

4.1、创建远程仓库

图片

图片

# 添加远程仓库地址
git remote add origin https://gitee.com/liuxiangxiangaqua/joint-projects

# 查看远程仓库地址
git remote -v

# 删除远程地址
git remote remove origin

4.2、上传本地仓库到远程

# 推送远程并设置分支为主分支 后续推送直接git push
git push -u origin "master"

执行推送命令后,需要输入gitee的账号和密码

4.3、开源仓库

企业中的代码,不要进行开源,可以设置哪些账号可以查看和使用

4.4、获取远程仓库

克隆:第一次完整的获取到所有的仓库信息    git clone xxxx

拉取:在原有基础之后,获取变更后的信息     git pull  

①克隆远程项目

git clone https://gitee.com/liuxiangxiangaqua/joint-projects

②拉取远程代码

git pull

5、git对比操作

对比不同版本或者不同工作区域代码的差别

①工作区与暂存区的差异对比

git diff xxx

②暂存区与版本库的差异对比

git diff --cached   xxxx
git diff --staged   xxxx

③工作区与版本库的差异对比

git diff master

6、git回撤操作

①暂存区回退到工作区 发现提交错了,退回一步

git reset HEAD 文件名
# 撤销上一个git add . 操作所有的文件
git reset HEAD

②工作区撤销回上一次的版本库  

注意:该操作 如果没有提交版本库  不存在版本库的中代码就会被全部删除  不可逆

git checkout --文件名

7、git恢复操作

恢复文件操作  恢复到对应版本

git checkout (commit id) <指定文件>

恢复版本操作

git reset  --hard (commit id)

git reset  --hard HEAD^   (返回上一个版本)

git reset  --hard HEAD~<num> (返回上几个版本)

#显示操作记录,可以回到当前版本
> git reflog

8、分支使用  多人协作开发

分支是一个副本,操作分支,不会影响主要分支代码。当需要做一些修改较多,测试性操作。就可以开一个新分支,完完成测试之后,再合并主要分支。

# 查看当前所在分支 及其所有分支 *代表当前所在分支
git branch

# 查看所有分支及其远程分支 -a all
git branch -a

# 创建新分支 基于当前分支

git branch 新分支名称

# 切换分支
git checkout 分支名称

# 创建分支并切换到新分支

git checkout -b 分支名称

# 合并分支 在当前分支合并其他分支

git merge 合并分支名称

# 删除分支

git branch -d 分支名称

9、远程仓库共享协作开发

图片

为了方便多人协作开发,使用线上远程操作具有操作权限。添加仓库成员。

10、冲突解决

提交之前先拉取,拉取出现冲突根据提示解决冲突,然后再提交。

git pull => git push

注意如果冲突代码,自己无法确定保留哪一份,需要和对应的开发者去对接。

11、开发使用技巧

当前正在开发新的功能,在dev分支开发。突然一个需求,修复一个线上bug。

问题:新开发的功能,还未完成,无法提交。bug修复还必须现在进行,导致现在没写完的代码,无处保存

可以通过git stash  保存未提交的代码

# 保存未提交代码
git stash

# 获取到之前未提交的代码

git stash pop

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐