版本控制工具 - git的安装与使用
一、介绍
Git 是一个免费和开源 的分布式版本控制系统,旨在以速度和效率处理从小型到大型项目的所有内容。Git易于学习 占用空间小,性能快如闪电. 它优于 SCM 工具,如 Subversion, CVS, Perforce, 和 ClearCase 具有 廉价的本地分支, 方便的暂存区域和多个工作流等功能。
- git记录的是什么?
- git核心框架 - 三棵树
- 工作区域(Working Directory):平时存放项目代码的地方。
- 暂存区域(Stage): 用于临时存放你的改动,事实上它只是一个文件,保存即将提交的文件列表信息。
- Git 仓库(Repository):就是安全存放数据的位置,这里边有你提交的所有版本的数据。其中,HEAD 指向最新放入仓库的版本(这第三棵树,确切的说,应该是 Git 仓库中 HEAD 指向的版本)。
- Git 的工作流程 (1)在工作目录中添加、修改文件; (2)将需要进行版本管理的文件放入暂存区域; (3)将暂存区域的文件提交到 Git 仓库。 因此,Git 管理的文件有三种状态:已修改(modified)、已暂存(staged)和已提交(committed),依次对应上边的每一个流程。
二、git的下载与安装
2.1 下载
2.2 安装
windows安装步骤如下:
- 双击应用程序,按照提示默认安装,选择安装的目录,过程如下:
- 安装完成,点击”launch git bash“ 或者在开始菜单打开git–>git bash,点击后弹出一个类似于cmd命令窗口的窗口就说明安装成功了。
- 安装完成后,还需要配置,在git 命令行输入命令:
> git config --global user.name "你的名称"
> git config --global user.email "你的邮箱"
#检查信息是否写入成功
> git config --list
因为Git是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和Email地址。
这两条命令分别是配置个人的用户名称和电子邮箱地址。用户名和电子邮箱这两个在git每次提交是都会引用这两条信息,标明是谁提交更新的。
注意git config命令的–global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。
三、git基本使用
3.1 初始化git本地仓库
要使用Git对我们的代码进行版本控制,首先需要获得本地仓库;本地仓库可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。
- 在电脑的任意位置创建一个空目录(例如test)作为我们的本地Git仓库。如果你使用Windows系统,为了避免遇到各种莫名其妙的问题,请确保目录名(包括父目录)不包含中文。
- 进入这个目录中,点击右键打开Git bash窗口
- 执行命令git init
- 如果创建成功后可在文件夹下看到.git目录。如果你没有看到.git目录,那是因为这个目录默认是隐藏的。 瞬间Git就把仓库建好了,而且如果是一个空的仓库(empty Git repository),当前目录下多了一个.git的目录,这个目录是Git来跟踪管理版本库的,没事千万不要手动修改这个目录里面的文件,不然改乱了,就把Git仓库给破坏了。
3.2 把文件添加到版本库
首先明确一下,所有的版本控制系统,其实只能跟踪文本文件的改动,比如TXT文件,网页,所有的程序代码等等,Git也不例外。而图片、视频这些二进制文件,虽然也能由版本控制系统管理,但没法跟踪文件的变化,只能把二进制文件每次改动串起来,也就是只知道图片从100KB改成了120KB,但到底改了啥,版本控制系统不知道,也没法知道。
Microsoft的Word格式是二进制格式,因此,版本控制系统是没法跟踪Word文件的改动的,前面我们举的例子只是为了演示,如果要真正使用版本控制系统,就要以纯文本方式编写文件。
因为文本是有编码的,比如中文有常用的GBK编码,强烈建议使用标准的UTF-8编码,所有语言使用同一种编码,既没有冲突,又被所有平台所支持。
使用Windows要特别注意:千万不要使用Windows自带的记事本编辑任何文本文件。原因是Microsoft开发记事本的团队使用了一个非常弱智的行为来保存UTF-8编码的文件,他在每个文件开头添加了0xefbbbf(十六进制)的字符,你会遇到很多不可思议的问题,比如,网页第一行可能会显示一个“?”,明明正确的程序一编译就报语法错误,等等,都是由记事本的弱智行为带来的。
下面示例一下添加到git版本库的过程:
- 在git本地仓库目录新建一个文档:
test.txt
- 在目录空白处右键,在弹出的框中选择”Git Bash Here“,弹出命令框
- 把文件添加到仓库,在命令框中执行命令:
# 支持一次添加多个
git add fi1 f2 fn
# 示例
git add test.txt
执行上面的命令,没有任何显示,“没有消息就是好消息”,说明添加成功。
- 把文件提交到仓库,在命令框中执行命令:
# -m后面输入的是本次提交的说明,这样你就能从历史记录里方便地找到改动记录
git commit -m "xxx"
# 示例
git commit -m "添加一个测试文件"
3.3 连接远程仓库
GitHub需要识别出你推送的提交确实是你推送的,而不是别人冒充的,而Git支持SSH协议,所以,GitHub只要知道了你的公钥,就可以确认只有你自己才能推送。
当然,GitHub允许你添加多个Key。假定你有若干电脑,你一会儿在公司提交,一会儿在家里提交,只要把每台电脑的Key都添加到GitHub,就可以在每台电脑上往GitHub推送了。
GitHub添加ssh Key的步骤如下:
- 创建SSH Key: 在用户主目录下,看看有没有
.ssh
目录,如果有,再看看这个目录下有没有id_rsa
和id_rsa.pub
这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key,执行命令:
ssh-keygen -t rsa -C "你的邮箱"
# 示例
ssh-keygen -t rsa -C "[email protected]"
成功后,在提示的目录位置看到
.ssh
目录,里面有SSH Key的秘钥对,
id_rsa
是私钥,不能泄露出去和
id_rsa.pub
是公钥,可以放心地告诉任何人。
2. 登陆 GitHub官网,先确定有一个github的账号,没有的话先注册。
3. 打开“Account settings”,“SSH Keys”页面:
然后,点“New SSH Key”,填上任意Title,在Key文本框里粘贴
id_rsa.pub
文件的内容:
添加成功后,这里能看到添加的ssh key :
三、IntelliJ idea 中使用Git的配置
3.1 配置git
- 进入配置界面
注:如果打开IDEA直接进入到工程界面,可以依次点击File——>Settings——>Appearance & Behavior——>System Settings,不勾选Reopen projects on startup,然后重启IDEA即可。
- 配置git.exe:
- 最后点击Test测试一下,出现版本号表示配置成功,点击OK。
3.2 IDEA中 将本地项目提交到本地仓库和远程仓库(github)
IDEA中 如何将本地项目提交到本地仓库和远程仓库(github),下面是想详细的操作步骤:
- 打开设置面板(Ctrl+Alt+S),点击左边功能面板列表中的Version Control(版本控制),选择github: server一栏填写github 的地址: github.com 在 Login 一栏填写你的github 账号, Password 一栏填写密码 填写完成后点击
login in
按钮,此时 IDEA 会根据你填写的内容远程访问github社区,如果账号和密码输入正确会提示你链接成功
3.3 在 IntelliJ IDEA 中配置 GitLab
在 IntelliJ IDEA 中配置 GitLab 的代码拉取(pull)和提交(push)操作,按照以下步骤进行配置:
(1)安装 Git 工具:确保您的计算机上已经安装了 Git。如果未安装,请先下载并安装 Git。
(2)打开 IntelliJ IDEA:启动 IntelliJ IDEA,并打开您要使用的项目。
(3)配置 GitLab 信息
3.3.1 克隆代码库 - 在IDEA上拉取gitlab上的项目到本地
- 复制GitLab 代码库上url如下所示:
- 在 IntelliJ IDEA 的顶部菜单栏中,选择 “File”(文件)-> “New”(新建)-> “Project from Version Control”(从版本控制创建)-> “Git”。
- 在弹出的窗口中,将 GitLab 上的代码库 URL 粘贴到 “URL” 输入框中。 可选择指定本地存储位置 “Directory”,项目拉下来之后会存放在这个目录下面,如果这个目录不存在,idea会自动帮你创建。 点击 “Clone”(克隆)按钮进行代码库的克隆。
- 在弹出的提示框中,输入gitlab的用户名和密码即可
- git配置:
3.3.2 gitlab上传新项目
实战链接:gitlab上传新项目全过程
版权归原作者 黎陌MLing 所有, 如有侵权,请联系我们删除。