Git学习笔记

一.版本控制

版本控制是一种在软件开发过程中用于管理我们对文件、目录、工程等内容的修改历史,方便查看更改历史记录,备份以恢复以前的版本的软件工程技术。

简单来说,版本控制是用于管理多个人开发的技术。


常见的版本控制工具

  • Git(最流行)
  • SVN
  • CVS
  • VSS
  • TFS
  • Visual Studio Online

版本控制分类


本地版本控制

记录每次更新,可以对每个版本做一个快照或者补丁,适合个人使用

在这里插入图片描述


集中式版本控制(SVN)

所有版本放在服务器上,协同开发者从服务器上同步更新或上传自己的修改

如果不联网,就不能看到历史版本,也无法切换版本验证等,而且服务器一旦损坏,就会丢失数据。

在这里插入图片描述


分布式版本控制(Git)

所有版本信息都会同步到每个用户的本地,可以在本地查看所有版本历史。可以离线在本地提交,只要在联网时进行push即可。这增加了本地空间的占用,但不会因为服务器损坏而造成数据丢失

在这里插入图片描述


二.Git历史

Git诞生于一个极富纷争、大举创新的年代。

因为Linux免费开源,所以在全世界都有着广泛的开发者参与开发。Linux之父Linus Benedic Torvalds(李纳斯 · 托沃兹,1969,芬兰)维护来自世界各地的关于Linux的代码,绝大多数的工作都花在了提交补丁和保存归档文件的繁琐事务上(1991~2002),所以在2002年,整个项目使用BitKeeper来管理代码。

在2005年,因为Linux社区中有开发者想破解BitKeeper,所以BitKeeper与Linux合作结束。

原本只需要道个歉就行,但是Linux开源社区(特别是Linus)基于BitKeeper的经验,花费2周左右开发出了自己的版本控制系统,也就是后来的Git。


三.Git安装

下载安装

https://npm.taobao.org/mirrors/git-for-windows/


  • Git Bash:Unix和Linux风格的命令行,使用最多
  • Git CMD:Windows风格命令行
  • Git GUI:图形界面的Git

四.Git配置(版本2.21.0)

gitconfig(…\Git\mingw64\etc)

系统级别的配置


.gitconfig(C:\Users\XXX)

这个文件可能不存在,在Git Bash设置一下自己的名称和邮箱即可

通过 ‘ git config --global --list’ 验证

$ git config --global user.name "XXX"

$ git config --global user.email "XXXX@XXX.com"

五.Git基本理论

工作区域

Git有4个工作区域:工作目录、暂存区、资源库,还有一个远程的Git仓库。

在这里插入图片描述

  • 工作目录:平时存放代码的位置
  • 暂存区:用于存放临时的改动,是一个文件,保存即将提交到文件列表的信息
  • 本地仓库:安全存放数据的位置
  • 远程仓库:托管代码的服务器

六.Git操作

初始化仓库

在某个文件夹下,使用git init,则会生成一个.git文件(隐藏项目);或者使用git clone url(github等),则可以创建一个仓库。


Git状态

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

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

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

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


Git文件命令

# 查看所有文件状态
git status

# 查看某个文件状态
git status filename

# 新文件提交到暂存区
git add .

# 某个文件提交到暂存区
git add filename

# 暂存区内容提交到本地仓库,-m后输出需要备注的消息内容
git commit -m "ok"

Git上传文件时配置

在主目录下建立“.gitignore”文件,规则如下

  1. 忽略文件中的空行或以井号( # )开始的行将会被忽略
  2. 可以使用Linux通配符。例如:星号(* )代表任意多个字符,问号( ? )代表一个字符,方括号([abc])代表可选字符范围,大括号( {string1,tring…}. )代表可选的字符串等。
  3. 如果名称的最前面有一个感叹号(!),表示例外规则,将不被忽略。
  4. 如果名称的最前面是一个路径分隔符 (/) ,表示要忽略的文件在此目录下,而子目录中的文件不忽略。
  5. 如果名称的最后面是一个路径分隔符(1),表示要忽略的是此目录下该名称的子目录,而非文件(默认文件或目录都忽略)。
#号为注释

*.txt		#忽略所有.txt结尾的文件

!1ib.txt	#但1ib.txt除外

/temp		#仅忽略项目根目录下的TODO文件,不包括其它目录temp

build/ 		#忽略bui1d/目录下的所有文件

doc/*.txt 	#会忽略doc/notes. txt但不包括doc/server/arch. txt

七.Git分支

概念

(菜鸟教程)https://www.runoob.com/git/git-branch.html

使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作。


命令

# 查看分支(-r查看远程分支)
git branch (-r)

# 新建分支
git branch [name]

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

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

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

# 查看本地分支和远程分支的映射关系
git branch -vv

# 推送(创建)远程分支
git branch origin [name]

# 删除远程分支
git push origin --delete [name]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值