Git基础教程

Git基础教程

视频链接:【狂神说Java】Git最新教程通俗易懂_哔哩哔哩_bilibili

了解基本概念:版本控制

1.版本控制

1.1 什么是版本控制?

版本控制是指对软件开发过程中各种程序代码、配置文件及说明文档等文件变更的管理,是软件配置管理的核心思想之一。

  • 实现跨区域多人协同开发
  • 追踪和记载一个或多个文件的历史记录
  • 组织和保护源代码和文件
  • 统计工作量
  • 并行开发提高开发效率
  • 跟踪记录整个软件开发的过程
  • 减轻开发人员负担,节省时间,同时降低人为错误

简单来说,就是管理多人协同开发项目的技术.

多人开发,最好使用版本控制

1.2 常见的版本控制工具

  • Git
  • SVN
  • CVS
  • VSS

目前Git的应用最为广泛

1.3 版本控制分类

1.本地版本控制

记录文件的每一次更新,可以对每一个版本做一个补丁记录文件,适合个人使用,如RCS

2.集中版本控制(SVN)

所有的版本数据都保存在服务器上,协同开发者同步更新或上传自己的修改.

一旦服务器崩了,就会出现单点故障问题,无法查看历史问题,所有文件就丢失了.

3.分布式版本控制(Git)

每个用户存储的都是所有的版本数据,只要一个用户设备没有问题就可以恢复所有的数据,但是增加了本地存储空间的占用.

4.Git和SVN的区别

SCN版本库放在中央服务器,工作的时候使用的是自己的电脑,所以首先从中央服务器得到最新版本,然后工作,结束后需要退送到中央服务器.集中式必须联网,对网络带宽要求比较高,

Git没有中央服务器,每个人电脑就是一个完整的版本库,工作的时候不需要联网了,因为版本都在自己电脑上.协同的方法是这样的:如果在自己的电脑上修改了A,其他人也在电脑上修改了A,这时,你们俩之间只需要把各自的修改推送给对方,就可以互相看到对方的修改了.

Git是目前最先进的分布式版本控制系统.

2.Git的历史

略过

3.Git环境配置

官网:Git (git-scm.com)

官网下载太慢,我们可以使用淘宝镜像:git-for-windows Mirror (taobao.org)

在这里插入图片描述

3.1 如何删除Git

在软件管理里删除,然后清除环境变量即可

3.2 安装Git

无脑下一步即可

在这里插入图片描述

在这里插入图片描述

选择文本编辑器

3.3 启动

在安装的地方打开即可(Git-bash) 其他的不用管 (操作风格类似Linux,推荐使用)

在任意地方右键即可打开

3.4 基本的Linux命令

  • cd 改变目录
  • cd … 回到上一级
  • pwd 显示当前路径
  • ls 显示当前文件夹中的所有文件,ls(||)列出更加详细的内容
  • touch 新建一个文件
  • rm 删除文件或者文件夹 带上 -rf 参数(递归删除)
  • mkdir 新建文件夹
  • mv 移动文件
  • reset 初始化终端/清屏
  • clear 清屏
  • history 历史
  • help 帮助
  • exit 退出
  • (#) 表示注释

3.5 Git配置

所有的配置文件都保存在本地 E:\work\Git\etc\gitconfig

查看git配置 git config -l

在这里插入图片描述

查看全局变量 git config --global --list

在这里插入图片描述

3.6 设置用户名和邮箱(必须)

在这里插入图片描述

必须配置的参数

准备工作到此结束

4.Git基本理论(核心)

4.1 工作区域

Git本地有三个工作区域:工作目录,暂存区,资源库.如果再加上远程git仓库就可以分成四个区域.文件在四个区域之间的转换关系如下.

在这里插入图片描述

  • 工作区:平时存放代码的地方
  • 暂存区:用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表的信息
  • 仓库区(本地仓库):安全存放数据的位置,这里面有你提交的所有版本的数据.其中head指向最新放入仓库的版本.
  • 远程仓库:托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交换.

4.2 基本的工作流程

1.在工作目录添加或者修改文件

2.将需要进行版本管理的文件放入暂存区域;

3.将暂存区域的文件提交到git仓库

因此git管理的文件有三种状态;已修改( modified),已暂存(staged),已提交(commited)

在这里插入图片描述

5.Git项目搭建

5.1 创建工作目录与常用指令

工作目录一般就是你希望git来帮你管理的文件夹.可以是一个空目录,建议不要有中文.日常使用只要记住下图的六个命令

在这里插入图片描述

5.2 本地仓库搭建

创建本地仓库的方法有两种,一直是在创建全新的仓库,另一种是克隆远程仓库

1.创建全新的仓库,需要在Git管理的项目根目录执行

# 在当前目录创建一个Git代码仓库
git init

2.执行之后可以看到在项目文件夹里多出来一个.git文件,关于版本等所有的信息都在里面

5.2 搭建远程仓库

1.将远程服务器上的仓库完全镜像一份到本地

# 克隆一个项目和它的整个代码历史
git clone [url]

2.去gitee上进行测试

在这里插入图片描述

6.Git文件操作

6.1 文件的四种状态

  • Untracked:未跟踪,此文件在文件夹中,但是没有加入git库,不参与版本控制,通过git add 状态变为Staged

  • Unmodify:文件已经入库,未修改,即版本库中的文件快照内容和文件夹完全一致,这种文件有两种去处,如果被修改就变为Modified,或者就是使用git rm,成为Untracked

  • Modified:文件已修改,这种文件有两种去处,通过git add可以暂存变成Staged状态,使用git checkout,放弃修改,变为Unmodify状态

  • Staged:暂存状态,执行git commit则同步修改到版本库中,这时候,库中文件和本地文件一致,文件变为Unmodify状态,执行git reset HEAD filename取消暂存,文件状态变为Modified

6.2 查看文件状态

# 查看指定文件状态
git status filename

# 查看所有文件状态
git status

6.3 忽略文件

有时候我们不想把某些文件纳入版本控制中,比如数据库文件,临时文件,设计文件等

在主目录下建立".gitignore"文件,此文件有如下规则:

  • 忽略文件中的空行和以#开头的行
  • 可以使用linux通配符,例如: * 代表任意多个字符; ? 代表一个字符; [abc] 代表可选字符范围; {string1, string2, …} 代表可选字符串范围
  • 如果名称前有一个! ,表示例外规则,不被忽略
  • 如果名称的最前面是一个路径分隔符 / ,表示要忽略的文件在此目录下,别的目录下不受影响,并且子目录也不受影响
  • 如果名称的最后面是一个路径分隔符 / ,表示要忽略的是此目录下改名称的子目录,而非文件
# 为注释
*.txt      #忽略所有的txt文件
!lib.txt   #但是lib.txt除外
/temp      #仅忽略项目根目录下的TODO文件,不包括其他的temp目录
build/     #忽略build下的所有文件
doc/*.txt  #忽略doc/t.txt但是不忽略doc/test/tt.txt

一个示范

/bin/
*.txt

*.class
*.log
*.lock

# Package Files#
*.jar
*.war
*.ear
target/

# eclipse
.settings/
.classpath
.project

# idea
.idea/
*.iml

### IDEA ###
*.iml
*.ipr
*.iws
idea
.classpath
.project
.settings/
bin/

*.log
temp/
*.iml
*.ipr
*.iws

.gitignore

7.使用Gitee

1.注册码云,完善个人信息开源软件 - Gitee.com

2.绑定本机ssh公钥,实现免密码登录(重要)

# 进入C:/user/Administrator/.ssh 目录
# 生成公钥
ssh-keygen

在这里插入图片描述

在这里插入图片描述

3.将公钥信息public key添加到gitee账号中

4.使用码云创建一个自己的仓库!

在这里插入图片描述

8.IDEA中集成Git

  • 新建项目,绑定git

    • 先将一个项目在gitee上建好然后克隆到本地,然后将其中的信息拷贝到项目中

    • 将远程的git文件目录拷贝到项目中即可

在这里插入图片描述

  • 观察文件变化
  • 修改文件,然后使用idea提交

在这里插入图片描述

  • 可以对单个文件处理
    在这里插入图片描述

  • 提交(在Terminal面板指令操作,建议做法)

在这里插入图片描述

9.Git分支说明

git中常用的分支命令

# 列出所有的本地分支
git branch

# 列出所有的远程分支
git branch -r

# 新建一个分支,但是应然停留在当前分支
git branch [branch-name]

# 新建一个分支,并切换到该分支
git checkout -b [branch-name]

# 切换分支
git checkout [branch-name]

# 合并指定分支到当前分支
git merge [branch]

# 删除指定分支
git branch -d [branch-name]

# 删除远程分支
git branch -dr [remote/branch]

多个分支如果并行执行,就导致我们代码不冲突,也就是同时存在多个版本!

如果同一个文件在分支合并的时候都被修改了就会引起冲突:解决办法是我们可以修改冲突文件后重新提交!

master主分支应该非常稳定,用来发布新版本,一般情况下不允许在上面工作工作一般情况下在新建的dev分支,工作完后,等产品发布或者dev分支稳定后可以合并到主分支master上来.

10.Git常用命令

Git 大全 - Gitee.com

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值