Git

简介: 介绍git版本控制、环境配置、常用命令

Git

版本控制

版本控制工具

主流的版本控制器:

  • Git
  • SVN (subversion)
  • CVS (Concurrent Version System)
  • VSS (Micorosoft Visual SourceSafe)
  • TFS (Team Foundation Server)
  • visual Studio Online
版本控制分类

1.本地版本控制

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

image.png

2.集中版本控制 (SVN)

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

image.png

所有数据保存在单一的服务器上,容易丢失数据,用户的本地只有自己以前所同步的版本,如果不联网就看不到历史版本,也无法切换版本验证问题,或在不同分支工作。

3.分布式版本控制 git

image.png

所有的版本信息仓库全部同步到本地的每一个用户,可以在本地查看所有版本历史,可以离线进行本地提交,只需联网时传输到相应的服务器或其他用户。由于每个用户都保存所有的版本数据,只要有一个用户设备没有问题数据就不会丢失。但是增加了本地存储空间的占用,且容易造成安全隐患。

Git和SVN的主要区别

SVN是集中式版本控制系统,版本库是集中放在中央服务器的。工作时,需要从中央服务器上下载最新的版本到本地电脑,完成后需要上传修改后的到中央服务器。集中式版本控制是必须联网进行工作,对网络带宽要求较高。

Git是分布式版本控制系统,没有中央服务器,每个人的电脑就是一个完整的版本库,每个人修改后互相推送,就可以看到对方的修改。git可以直接看到更新了那些代码和文件。

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

Git环境配置

安装Git 官网或者镜像库

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

Git CMD: Windows风格的命令行

Git GUI:图形界面的Git,

常用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目录

rm -rf / 切勿在Linux中尝试!删除电脑中全部文件!
9)mv 移动文件, mv index.html src index.html 是我们要移动的文件, src 是目标文件夹,当然, 这样写,必须保证文件和目标文件夹在同一目录下。

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

11)clear 清屏。

12)history 查看命令历史。

13)help 帮助。

14)exit 退出。

15)# 表示注释

Git配置

安装成功后,首先要设置用户名和e-mail地址

git config --global user.name ""     #名称

git config --global user.email           #邮箱

Git基本理论(核心)

  • 工作目录
  • 暂存区
  • 资源库
  • 远程仓库

工作流程
image.png

创建本地仓库:

1.创建一个新的本地仓库

2.克隆一个远程仓库

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

执行后在目录下出现一个.git的隐藏文件

克隆远程仓库
git clone + url

查看文件状态

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

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

git commit -m

#提交暂存区中的文件到本地仓库  -m 提交信息
忽略文件

有些文件不想打包上传,可以在.gitignore文件中进行配置

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

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

2.可以使用Linux通配符。例如∶星号(*)代表任意多个字符,问号( ?)代表一个字符,方括号

([abc])代表可选字符范围,大括号({string1,string2,.…})代表可选的字符串等。

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

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

忽略。

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

(默认文件或目录都忽略)。

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

在gitee上创建仓库,在本地文件夹中clone +地址 ,将项目源码放在文件夹里或者把文件夹里面的文件放在项目目录下,打开idea ->commit ->push

git分支

git分支相互平行互不干扰。在需要合并的时候可以进行合并

git分支中常用命令:

#列出所有本地分支
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]

相关文章
|
存储 C语言 索引
环形链表、环形链表 II、有效的括号​​​​​​​【LeetCode刷题日志】
环形链表、环形链表 II、有效的括号​​​​​​​【LeetCode刷题日志】
|
11月前
|
存储 数据可视化 搜索推荐
必看!提升直播与央视对接技术细节处理效率的神器?
在视频直播行业竞争激烈的当下,高效的团队协作和个人学习能力至关重要。本文介绍了6款可视化团队协作办公软件:板栗看板、Trello、Asana、Jira、Notion和Monday.com。这些工具通过简洁直观的界面、强大的任务管理、丰富的插件生态和自动化功能,帮助团队更好地沟通、协作和学习,提升工作效率,确保直播活动顺利进行。选择合适的软件,助力团队在2025年新春各大直播活动中脱颖而出。
212 12
|
自然语言处理 算法
HanLP — HMM隐马尔可夫模型 - 路径规划算法 - 求解最短路径 - 维特比(Viterbi)算法
HanLP — HMM隐马尔可夫模型 - 路径规划算法 - 求解最短路径 - 维特比(Viterbi)算法
276 0
HanLP — HMM隐马尔可夫模型 - 路径规划算法 - 求解最短路径 - 维特比(Viterbi)算法
|
人工智能 编解码
AI 绘画Stable Diffusion 研究(十三)SD数字人制作工具SadTlaker使用教程
AI 绘画Stable Diffusion 研究(十三)SD数字人制作工具SadTlaker使用教程
940 0
|
移动开发 前端开发 安全
uni-app跨域调试你学会了没
uni-app跨域调试你学会了没
389 0
|
计算机视觉 Python
Hough变换原理-直线检测
Hough变换原理-直线检测
563 2
|
机器学习/深度学习 人工智能 物联网
未来操作系统的发展趋势与挑战
随着科技的不断进步,操作系统作为计算机系统的核心,也在不断演化和发展。本文从人工智能、物联网、云计算等方面探讨了未来操作系统的发展趋势和面临的挑战,展望了操作系统在技术革新中的重要地位。
|
设计模式 安全 编译器
C++中精简艺术:省略参数名以提升代码清晰度
C++中精简艺术:省略参数名以提升代码清晰度
225 2
|
程序员 Linux Python
2024年最全03(1),2024年最新面试时千万不能说的三个大忌
2024年最全03(1),2024年最新面试时千万不能说的三个大忌
|
安全 数据安全/隐私保护
【视频】Dataphin数据安全视频产品手册
数据安全一直是数据平台建设中的核心问题,Dataphin提供了基于数据分类分级和敏感数据脱敏的完整安全方案。本文将通过视频的方式详细讲解Dataphin数据安全模块的设计理念和使用流程(基于Dataphin V3.x版本)。
【视频】Dataphin数据安全视频产品手册