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]

相关文章
|
6月前
|
Ubuntu Linux 开发工具
|
6月前
|
网络安全 开发工具 vr&ar
Git 详解(二)
Git 详解(二)
91 0
|
开发工具 git
最好的 Git 动画教程,没有之一
介绍 Git 动画教程的学习方法。
最好的 Git 动画教程,没有之一
|
开发工具 git
git:.gitkeep
git:.gitkeep
210 0
|
开发工具 git 开发者
深入Git-变基
前言 在Git中整合不同分支的修改主要有两种方法:merge和rebase。其中merge在一般的团队中使用的比较多,而rebase则使用的比较少。本篇文章将主要介绍变基(rebase)的概念以及探讨我们应该在什么时候使用它。
|
存储 开发工具 git
Git(超详细)
1.Git概述 Git简介 Git是一个分布式版本控制工具,通常用来对软件开发过程中的源代码文件进行管理。通过Git仓库来存储和管理这些文件,Git仓库分为两种: 本地仓库:开发人员自己电脑上的Git 仓库 远程仓库:远程服务器上的Git仓库
|
Shell Linux 网络安全
git详解
git详解
241 0
git详解
|
开发工具 git
Git 这些小技巧你知道吗?
Git 这些小技巧你知道吗?
122 0
Git 这些小技巧你知道吗?
|
缓存 JSON Linux
git
-
261 0
|
网络安全 开发工具 git
Git小记-1
Git小记-1
115 0
Git小记-1