Git概述
Git历史
Git 诞生于一个极富纷争大举创新的年代。Linux 内核开源项目有着为数众多的参与者。 绝大多数的 Linux 内核维护工作都花在了提交补丁和保存归档的繁琐事务上(1991-2002年间)。 到 2002 年,整个项目组开始启用一个专有的分布式版本控制系统 BitKeeper 来管理和维护代码。
到了 2005 年,开发 BitKeeper 的商业公司同 Linux 内核开源社区的合作关系结束,他们收回了 Linux 内核社区免费使用 BitKeeper 的权力。 这就迫使 Linux 开源社区(特别是 Linux 的缔造者 Linus Torvalds)基于使用 BitKeeper 时的经验教训,开发出自己的版本系统。
他们对新的系统制订了若干目标:
速度
简单的设计
对非线性开发模式的强力支持(允许成千上万个并行开发的分支)
完全分布式
有能力高效管理类似 Linux 内核一样的超大规模项目(速度和数据量)
Git是分布式版本控制系统(Distributed Version Control System,简称 DVCS) 分为两种类型的仓库:本地仓库和远程仓库
本地仓库: 是在开发人员自己电脑上的Git仓库
远程仓库: 是在远程服务器上的Git仓库
Clone: 克隆,就是将远程仓库复制到本地
Push: 推送,就是将本地仓库代码上传到远程仓库
Pull: 拉取,就是将远程仓库代码下载到本地仓库
Git工作流程
1.从远程仓库中克隆代码到本地仓库
2.从本地仓库中checkout代码然后进行代码修改
3.在提交前先将代码提交到暂存区
4.提交到本地仓库。本地仓库中保存修改的各个历史版本
5.修改完成后,需要和团队成员共享代码时,将代码push到远程仓库
图示
Git代码托管服务
常用的Git代码托管服务
gitHub( 地址:https://github.com/ ) 是一个面向开源及私有软件项目的托管平台,因为只支持Git 作为唯一的版本库格式进行托管,故名gitHub
码云(地址: https://gitee.com/ ) 是国内的一个代码托管平台,由于服务器在国内,所以相比于GitHub,码云速度会更快
GitLab (地址: https://about.gitlab.com/ ) 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务
我们现在使用的是码云
在码云注册账号: 地址: https://gitee.com/signup
登录码云并创建Git远程仓库: 地址: https://gitee.com/login
登录成功后就可以创建Git远程仓库
创建完成后可以查看仓库信息
每个Git远程仓库都会对应一个网络地址,可以点击克隆/下载按钮弹出窗口并点击复制按钮获得这个网络地址
工作目录、暂存区以及版本库概念
为了更好的学习Git,我们需要了解Git相关的一些概念,这些概念在后面的学习中会经常提到
版本库:前面看到的.git隐藏文件夹就是版本库,版本库中存储了很多配置信息、日志信息和文件版本信息等
工作目录(工作区):包含.git文件夹的目录就是工作目录,主要用于存放开发的代码
暂存区:.git文件夹中有很多文件,其中有一个index文件就是暂存区,也可以叫做stage。暂存区是一个临时保存修改文件的地方
Git工作目录下文件的两种状态
Git工作目录下的文件存在两种状态:
untracked 未跟踪(未被纳入版本控制)
tracked 已跟踪(被纳入版本控制)
Unmodified 未修改状态
Modified 已修改状态
Staged 已暂存状态
这些文件的状态会随着我们执行Git的命令发生变化
将文件添加至忽略列表
一般我们总会有些文件无需纳入Git 的管理,也不希望它们总出现在未跟踪文件列表。 通常都是些自动生成的文件,比如日志文件,或者编译过程中创建的临时文件等。 在这种情况下,我们可以在工作目录中创建一个名为 .gitignore 的文件(文件名称固定),Windows系统不支持直接创建这样的文件,所以我们需要使用命令:touch .gitihnore来创建这样的文件,然后列出要忽略的文件模式
图示
Git常用命令
Git常用命令 | 作用 |
---|---|
git config --global user.name “用户标识” | 设置用户信息 |
git config --global user.email “用户邮箱” | 设置用户信息 |
git config --list | 查看配置信息 |
git init | 在本地初始化一个Git仓库 |
git clone [url] | 从远程仓库克隆 |
git status | 查看文件状态 |
git status –s | 使输出信息更加简洁 |
git add | 将未跟踪的文件加入暂存区 |
git reset | 将暂存区的文件取消暂存 |
git commit | 将暂存区的文件修改提交到本地仓库 |
git rm | 删除文件 |
git log | 查看日志记录 |
git remote | 查看已经配置的远程仓库服务器 |
git remote add | 添加一个新的远程 Git 仓库,同时指定一个可以引用的简写 |
git remote rm | 移除一个远程仓库;此命令只是从本地移除远程仓库的记录,并不会真正影响到远程仓库 |
git fetch | 从远程仓库获取最新版本到本地仓库,不会自动merge |
git pull | 是从远程仓库获取最新版本并merge到本地仓库 |
git push [remote-name][branch-name] | 推送到远程仓库(文件、分支都可) |
git branch | 列出所有本地分支 |
git branch -r | 列出所有远程分支 |
git branch -a | 列出所有本地分支和远程分支 |
git branch 分支名 | 创建分支 |
git checkout 分支名 | 切换分支 |
git merge 分支名 | 合并分支 |
git branch -d 分支名 | 删除分支,如果要删除的分支中进行了一些开发动作,此时执行上面的删除命令并不会删除分支,如果坚持要删除此分支,可以将命令中的-d参数改为-D |
git push | |
origin –d branchName | 删除远程仓库中的分支 |
在IDEA中使用Git
在IDEA中配置Git
安装好IntelliJ IDEA后,如果Git安装在默认路径下,那么idea会自动找到git的位置,如果更改了Git的安装位置则需要手动配置下Git的路径。
选择File→Settings打开设置窗口,找到Version Control下的git选项:
选择git的安装目录后可以点击“Test”按钮测试是否正确配置
在IDEA中使用Git
在IDEA中创建工程并将工程添加至Git
将项目添加至Git管理后,可以从IDEA的工具栏上看到Git操作的按钮
将文件添加到暂存区
提交文件
**将代码推送到远程仓库 **
从远程仓库克隆工程到本地
从远程拉取代码
版本对比
创建分支
切换分支
分支合并