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]

相关文章
|
11月前
|
开发工具 git
git 的三剑客
git 的三剑客
49 0
|
3月前
|
XML Java 开发工具
Git简单了解
Git是一个版本控制系统,用于跟踪和管理软件开发项目中的代码改动。它可以记录代码的历史修改,支持多人协作开发,提供了分支管理等功能。通过Git,开发者可以方便地回退到代码的早期版本,合并代码的改动,以及与其他开发者共享代码。Git已经成为大多数软件开发团队的标准工具之一。
42 3
 Git简单了解
|
11月前
|
Linux Shell 网络安全
|
3月前
|
存储 测试技术 开发工具
你真的会使用Git吗
你真的会使用Git吗
54 0
|
12月前
|
网络安全 开发工具 数据安全/隐私保护
今天给大家讲一讲git
今天给大家讲一讲git
107 0
|
存储 安全 Linux
|
关系型数据库 MySQL 应用服务中间件
Git相关知识
Git相关知识
179 0
|
存储 缓存 安全
看了这边文章,你还敢说你不会用git吗
看了这边文章,你还敢说你不会用git吗
868 0
|
Linux 开发工具 git
14 Git 使用问题总结
问题分析 : could not lock config file %HOMEDRIVE%%HOMEPATH%/.gitconfig 的问题 在我的电脑上 HOME 的值是 %HOMEDRIVE%%HOMEPATH% 竟然不识别。已知 %homedrive% 指操作系统所在盘默认为C:,%HOMEPATH% 指的是用户所在目录,举例说明\Users\zhangsan。 所以手动改成 C:\Users\hp 即可。
376 0
14 Git 使用问题总结
|
开发工具 git