Git的理解与实践

前言
一个系统的完成肯定是一个不断更新迭代的过程,我们在不断的开发着,学生时代的我们,可能大多数是一个人完成项目,所以更多的时候我们是在本地上进行开发,但是越往后,随着需要做的项目体系更大,需要的人员更多,本地上开发开始变得不现实,我们需要同步大家的开发进度,所以这个时候,git就可以很好的帮助我们来解决这个问题!

1、Git概述

通过下面这张图片,我们可以大概知道前言中说到的,多人开发如何进行协作,我们在各自的本地上进行开发,代码保存在本地仓库之后,可以提交到远程仓库,这样我们也可以通过远程仓库把项目拉取下来,不断的更新我们的本地仓库。
在这里插入图片描述

2、Git环境配置

1、软件下载

(1)通过淘宝镜像,安装对应操作系统的版本,git安装地址

(2)傻瓜式安装即可

2、启动Git

(1)这里推荐使用Git Bash(Unix与Linux风格的命令行,使用最多,推荐最多)

在这里插入图片描述
3、熟悉常用的Linux指令

(1)、cd : 改变目录。
(2)、cd . . 回退到上一个目录,直接cd进入默认目录
(3)、pwd : 显示当前所在的目录路径。

(4)、ls(ll): 都是列出当前目录中的所有文件,只不过ll(两个ll)列出的内容更为详细。

(5)、touch : 新建一个文件 如 touch index.js 就会在当前目录下新建一个index.js文件。
(6)、rm: 删除一个文件, rm index.js 就会把index.js文件删除。
(7)、mkdir: 新建一个目录,就是新建一个文件夹。
(8)、rm -r : 删除一个文件夹, rm -r src 删除src目录
(9)、mv 移动文件, mv index.html src index.html 是我们要移动的文件, src 是目标文件夹,当然, 这样写,必须保证文件和目标文件夹在同一目录下。

(10)、reset 重新初始化终端/清屏。
(11)、clear 清屏。
(12)、history 查看命令历史。
(13)、help 帮助。
(14)、exit 退出。
(15)、#表示注释

4、Git配置

(1)查看配置:gti config -l
在这里插入图片描述

(2)查看不同级别的配置文件

查看系统Config
git config --system --list

查看当前用户(Golbal)配置
git config --global --list

(3)Git相关配置文件

Git\etc\gitconfig : Git安装目录下的config            --system级别

C:\User\WangZai\.gitconfig:只适用于当前登录用户的配置      --golbalp全局

在这里插入图片描述

(4)设置用户名与邮箱【用户标识】

当你安装完Git之后,首先要做的事情就是设置你的用户名称和email地址,这是非常重要的,因为每次Git提交都会使用到该信息,它被永远的嵌入到你的提交中去了。

git config --global user,name "陈志辉"   #名称

git config --global user,email "2425540101@qq.com"   #邮箱

3、Git基本理论

1、区域理解

(1)工作目录(Working Directory):本地的项目开发文件目录

(2)暂存区(Stage/Index):通过git add . 使文件代码储存到暂存区

(3)资源库(Repository):通过git comit 使代码从暂存区到资源库【仍在本地】

(4)远程仓库(Remote Directory):通过 git push 使代码从资源库到远程仓库【实现远程管理】
在这里插入图片描述

2、工作流程

(1)在工作目录中添加、修改文件 【已修改】modified

(2)将需要进行版本管理的文件放入暂存区【已暂存】staged

(3)将暂存区的文件提交到git仓库【已提交】committed

4、Git项目创建

1、创建工作目录【建议不要有中文】

2、本地仓库创建

(1)创建全新的仓库

在当前的工作目录下,开启git bash here
输入 git init
执行后可以看到在项目目录多出了一个.git目录【隐藏文件,需要手动打开】,所有版本信息都在这个目录里

在这里插入图片描述

(2)克隆远程仓库

在当前的工作目录下,开启git bash here
输入 git clone 【url】

在这里插入图片描述

5、Git文件操作

1、文件的四种状态

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

(2)Unmodify: 文件已经入库, 未修改, 即版本库中的文件快照内容与文件夹中完全一致. 这种类型的文件有两种去处, 如果它被修改, 而变为Modified. 如果使用git rm移出版本库, 则成为Untracked文件

(3)Modified: 文件已修改, 仅仅是修改, 并没有进行其他的操作. 这个文件也有两个去处, 通过git add可进入暂存staged状态, 使用git checkout 则丢弃修改过, 返回到unmodify状态, 这个git checkout即从库中取出文件, 覆盖当前修改 !

(4)Staged: 暂存状态. 执行git commit则将修改同步到库中, 这时库中的文件和本地文件又变为一致, 文件为Unmodify状态. 执行git reset HEAD filename取消暂存, 文件状态为Modified

2、查看文件状态

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

#查看文件的所有状态
git status

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

#提交暂存区中的内容到本地仓库
git commit -m "提交信息"

3、忽略文件

如果我们有时候不想要把某些文件纳入版本控制中,比如数据库文件,临时文件,设计文件等,那么可以在我们生成的SpringBoot项目的 “.gitignore”文件中,看如下规则:

(1)忽略文件中的空行或以井号(#)开始的行将会被忽略。

(2)可以使用Linux通配符。例如:星号(*)代表任意多个字符,问号(?)代表一个字符,方括号([abc])代表可选字符范围,大括号({string1,string2,…})代表可选的字符串等。

(3)如果名称的最前面有一个感叹号(!),表示例外规则,将不被忽略。

(4)如果名称的最前面是一个路径分隔符(/),表示要忽略的文件在此目录下,而子目录中的文件不忽略。

(5)如果名称的最后面是一个路径分隔符(/),表示要忽略的是此目录下该名称的子目录,而非文件(默认文件或目录都忽略)。

#为注释
*.txt        #忽略所有 .txt结尾的文件,这样的话上传就不会被选中!
!lib.txt     #但lib.txt除外
/temp        #仅忽略项目根目录下的TODO文件,不包括其它目录temp
build/       #忽略build/目录下的所有文件
doc/*.txt    #会忽略 doc/notes.txt 但不包括 doc/server/arch.txt

6、使用码云

虽然github号称全球最大的同性交友平台,但是在国内的话,会比较慢一点,所有我们可以使用gitee【码云】

1、注册码云,完善个人信息 码云地址

2、设置本机绑定SSH公钥,实现免密码登录!(免密码登录,这一步重要,码云是远程仓库,我们平时的工作是在本地仓库)

#进入 C:\Users\WangZai\.ssh 目录
# 生成公钥
ssh-keygen -t rsa
运行之后会在目录生成这两个文件

在这里插入图片描述
3、打开上面的“id_rsa.pub”文件的内容(即公钥)添加到码云账户即可

4、使用码云创建一个自己的仓库
在这里插入图片描述

7、IDEA集成Git

1、新建项目,绑定git

== 只需要把我们远程的git文件目录拷贝到项目中即可 ==
在这里插入图片描述

观察IDEA变化
在这里插入图片描述
2、修改文件,使用IDEA操作git

(1)添加到暂存区
在这里插入图片描述

(2)commit提交到本地仓库
在这里插入图片描述

(3)push到远程仓库

在这里插入图片描述

3、提交测试
在这里插入图片描述

8、Git分支

分支在Git中属于比较难的,分支就相当于科幻电影里的平行宇宙,如果两个平行宇宙互不干扰,那么对现在的自己也没什么影响,不过如果,在某个时间点两个平行宇宙合并了,我们就需要处理一些问题了!

在这里插入图片描述
gti中常用分支指令


# 列出所有本地分支
git branch

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

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

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

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

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

# 删除远程分支
$ git push origin --delete [branch-name]
$ git branch -dr [remote/branch]

IDEA中的操作
在这里插入图片描述

怎么解决冲突?
我们可以修改冲突的文件后重新提交,选择保留是你的代码,还是他的代码!

其中master分支应该是非常稳定的,用来发布新版本,一般情况下不允许在上面工作,工作一般情况下载新建的dev分支上工作,工作完成后,比如上要发布,或者dev分支代码稳定后可以合并到主分支master上来。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Coder陈、

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值