IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> Git学习笔记(1) -> 正文阅读

[开发工具]Git学习笔记(1)

Git学习

参考:

廖雪峰git教程

狂神说git教程

1、版本控制(分布式版本控制)

版本迭代、版本管理器 ,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术

多人开发就必须要使用版本控制

常用的版本控制

  • Git
  • svn等

本地版本控制:记录文件每次的更新,可以对每个版本做一个快照,eg: version3 -> version2 -> version1

集中版本控制:将版本数据全部上传到服务器上便于管理

分布式版本控制:

每个人都拥有全部的代码!安全隐患

所有版本信息仓库全部同步到本地的每个用户,所以可以在本地查看所有版本历史,可以离线在本地提交,只需在联网时push到相应的服务器或者其他用户那里。由于每个用户那里保存的都是所有的版本数据,只要有一个用户的设备没有问题就可以恢复所有的数据,但这增加了本地存储空间的占用。

不会因为服务器损坏或者网络问题,造成不能工作的情况

2、Git与SVN最主要区别

GITSVN
分布式版本控制系统集中式版本控制系统
没有中央处理器,每个人电脑中都有一个完整版本库版本库放在中央处理器中
工作的时候可以不联网对网络带宽要求较高
版本的修改只需要用户间相互的推送版本的修改需要用户和服务期间的推送

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

3、Linux和Git之父李纳斯·托沃兹(Linus Benedic Torvalds) 1969、芬兰,俩周开发!!!

4、git下载安装

官网下载安装慢的话,去找一个镜像

卸载git

先删除环境变量,再卸载

mac下安装git:

1)使用国内镜像地址安装Homebrew :输入以下命令

/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"

2)安装git

brew install git

3)安装好之后先设置用户名邮箱地址:

git config --global user.name “yourname”

git config --global user.email “youremail”

实际上就是下面文件中的内容

在这里插入图片描述[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EnQ3ny5x-1634204698817)(/Users/mr.wei/Library/Application Support/typora-user-images/image-20211014100335543.png)]

5、git

Git Bash:Unix与Linux风格的命令行,使用最多,推荐

Git CMD:Windows风格的命令行

Git GUI :图形界面的Git,不建议初学者使用,尽量先熟悉常用命令

6、基本的Linux命令学习

1)cd 改变目录

2)cd … 回退到上一个目录,直接cd进入默认目录

3)pwd 显示当前所在的目录路径

4)ls(ll) 都是列出当前目录中的所有文件,但ll列出的内容更为详细

5)touch 新建一个文件, eg: touch index.js就会在当前目录下新建一个index.js文件

6)rm 删除一个文件

7)mkdir 新建一个目录or新建一个文件夹

8)rm -r 删除一个文件夹, rm -r src 删除src目录

9)mv 移动文件 eg:mv index.html src

10)reset 重新初始化终端/清屏

11)clear 清屏

12)history 查看命令历史

13)help 帮助

14)exit 退出

15)#表示注释

7、Git配置(配置的本质就是文件)

所有的配置文件,其实都保存在本地

查看配置: git config -l

查看系统配置:git config --system --list

查看本地配置:git config --global --list

设置用户名邮箱地址:

git config --global user.name “yourname”

git config --global user.email “youremail”

8、git基本理论(核心)(参考https://mp.weixin.qq.com/s/Bf7uVhGiu47uOELjmC5uXQ)

Git本地有三个工作区域:工作目录(Working Directory)、暂存区(Stage/Index)、资源库(Repository或Git Directory)。如果再加上远程的git仓库(Remote Directory)就可以分为四个工作区域。文件在这四个区域之间的转换关系如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gLTDZlSI-1634204698818)(/Users/mr.wei/Library/Application Support/typora-user-images/image-20211012232922482.png)]

  • Workspace: 工作区,平时存放代码的地方
  • Index/Stage: 暂存区,用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息
  • Reposity: 仓库区(或本地仓库),安全存放数据的位置,这里面有你提交所有版本的数据,其中HEAD指向最新放入仓库的版本

以上是本地的三个区域

  • Remote:远程仓库,托管代码的服务器,可以简单的认为是你的项目组中的一台电脑用于远程数据交换

本地的三个区域确切的说应该是git仓库中HEAD指向的版本:

图片
在这里插入图片描述

  • Directory:就是一个整体,一个仓库,被git管理
  • WorkSpace:需要git管理(进行版本控制)的文件和目录
  • .git:存放git管理信息的目录,初始化仓库时建立(git init)
  • Index/Stage:暂存区,进入本地仓库钱,我们把所有的更新放在暂存区
  • Local Repo:本地仓库,存放在本地的版本库,HEAD指向当前开发的分支,一般为创建分支之前指向主分支(master)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bTRRWgHt-1634204698819)(/Users/mr.wei/Library/Application Support/typora-user-images/image-20211014101904150.png)]

  • Stash:隐藏,是一个工作状态保存栈,用于保存/恢复WorkSpace中的临时状态

git的工作流程

图片

9、Git项目搭建

创建工作目录与常用命令

工作目录(workspace)一般是你希望Git帮助管理的文件夹;路径中建议不要有

日常使用需要记住下面六个命令

在这里插入图片描述

本地仓库搭建

有俩种办法:一种是创建全新的仓库,另一种是克隆远程仓库

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

# 在当前目录新建一个Git代码库
$ git init

2、执行后可以看到,仅仅在项目中多出了一个.git目录,关于版本等的所有信息都在这个目录里面

克隆远程仓库

克隆远程目录,可以将远程服务器上的仓库完全镜像一份至本地

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

10、Git文件

文件的四种状态

  • Untraced:未跟踪,在文件夹内,但没有添加到git库,需使用git add 命令将状态变为 Staged
  • Staged:暂存,使用git commit命令可以将文件同步上传到本地仓库之中,文件为Unmodify状态,执行git HEAD filename取消暂存,文件状态变为Modified
  • Unmodify:文件已通过git add命令添加入库,未修改
    • 若修改文件,则会变味Modified状态
    • 若使用git rm移除本地仓库,则会成为Untracked文件
  • Modified:文件被修改
    • 通过git add命令进入Staged状态
    • 使用git checkout 则丢弃修改,返回到unmodify状态(也就是从版本库中找出历史文件,覆盖当前的文件)

img

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

#查看所有文件状态
git status

# git add . 					  添加所有文件到暂存区
# git commit -m "备注"	 提交暂存区的内容到本地仓库并附加提交信息

在提交时忽略某些文件

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

1、文件中的空行或#开始的行将忽略

2、可以使用Linux通配符,eg:(*)代表任意多个字符;(?)代表一个字符,([abc])代表可选字符范围,({string1, string2})代表可选字符串…

3、名称最前面加一个感叹号(!),表示例外,其不被忽略

4、路径名称最前面是(/),表示忽略的文件再次目录下面,而子目录中的文件不被忽略

5、路径名称最后面是(/),表示忽略的此目录下该名称的字目录,而非文件

以斜杠"/“开头表示目录;”/“结束的模式只匹配文件夹以及在该文件夹路径下的内容,但是不匹配该文件;”/"开始的模式匹配项目跟目录;如果一个模式不包含斜杠,则它匹配相对于当前 .gitignore 文件路径的内容,如果该模式不在 .gitignore 文件中,则相对于项目根目录。

更多规则参考:https://www.cnblogs.com/kevingrace/p/5690241.html

*.txt 					#忽略所有.txt结尾的文件
!lib.txt 				#除了lib.txt
/temp						#仅忽略项目根目录下面的temp文件,但不包括/subdir/temp(就是仅仅忽略该项目根目录下面的temp文件夹,但不忽略该项目下字目录里面的文件夹)
build/ 					#忽略build/目录下的所有文件
doc/*.txt				#忽略	doc/notes.txt	但不包括 doc/server/arch.txt(即不包括其子目录下的文件夹)

11、注册使用码云

1)注册登陆,并新建仓库

在这里插入图片描述

2)克隆仓库到本地

git clone [url]

随后便可以在本地文件夹中添加文件,并且使用git add . 等命令提交同步至远程仓库

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4MK0W6EN-1634206313411)(/Users/mr.wei/Library/Application Support/typora-user-images/image-20211014181029929.png)]

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2021-10-15 11:58:54  更:2021-10-15 12:01:26 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 23:21:10-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码