目录
一、Git概述
是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。 也是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。
git 与 svn 的区别?
- SVN是集中式版本控制系统
- Git是分布式版本控制系统
SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而开发人员工作的时候,用的都是自己的电脑,所以首先要从中央服务器下载最新的版本,然后开发,开发完后,需要把自己开发的代码提交到中央服务器。
集中式版本控制工具缺点:
- 服务器单点故障
- 容错性差
Git是分布式版本控制系统(Distributed Version Control System,简称 DVCS) ,分为两种类型的仓库:
本地仓库和远程仓库。
- 本地仓库:是在开发人员自己电脑上的Git仓库
- 远程仓库:是在远程服务器上的Git仓库
- lClone:克隆,就是将远程仓库复制到本地
- lPush:推送,就是将本地仓库代码上传到远程仓库
- lPull:拉取,就是将远程仓库代码下载到本地仓库
Git的工作流程
二、下载与安装
下载地址:Git - Downloads
安装 :(直接next)
安装完成后在电脑桌面(也可以是其他目录)点击右键,如果能够看到如下两个菜单则说明Git安装成功。
三、Git代码托管服务
常用的托管服务:
- gitHub( 地址:https://github.com/ )是一个面向开源及私有软件项目的托管平台,因为只支持Git 作为唯一的版本库格式进行托管,故名gitHub
- 码云(地址: https://gitee.com/ )是国内的一个代码托管平台,由于服务器在国内,所以相比于GitHub,码云速度会更快
- GitLab (地址: https://about.gitlab.com/ )是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务
四、Git常用命令
本地仓库
1、设置用户信息
- git config --global user.name <username>
- git config --global user.email <email>
- 查看配置信息
- git config --list
- git config user.name
2、获取git仓库
- 初始化一个本地仓库
- git init
- 拉取远程仓库(克隆)
- git clone <url>
3、概念
- 版本库:前面看到的.git隐藏文件夹就是版本库,版本库中存储了很多配置信息、日志信息和文件版本信息等
- 工作目录(工作区):包含.git文件夹的目录就是工作目录,主要用于存放开发的代码
- 暂存区:.git文件夹中有很多文件,其中有一个index文件就是暂存区,也可以叫做stage。暂存区是一个临时保存修改文件的地方
4、git工作目录下的两种状态
- uuntracked 未跟踪(未被纳入版本控制)
- u tracked 已跟踪(被纳入版本控制)
- Unmodified 未修改状态
- Modified 已修改状态
- Staged 已暂存状态
5、查看文件状态
- git status
- git status -s 更简洁
6、将文件存入暂存区、取消暂存
- git add 文件路径
- git reset 文件路径
7、将暂存区文件修改提交到本地仓库
- git commit -m “日志信息(例:init filename)” 文件路径
8、删除文件
- git rm 文件路径
- 删除之后进行提交操作,提交到本地仓库,才算删除了
9、将文件添加至忽略列表
- 在工作目录中创建 .gitignore 文件
- *.a 忽略 .a 结尾的文件
- !lib.a 不忽略 lib.a 文件
- /TODA 忽略 TODA 文件
- bulid/ 忽略build目录下的所有文件
- doc/*.txt doc目录下 .txt 结尾的文件都需要忽略
- doc//***.pdf doc目录下的(包括子目录)所有.pdf结尾的都忽略
远程仓库
1、查看远程仓库
- git remote 查看所有仓库
- git remote show 仓库名 查看当前仓库
- git remote -v 查看仓库名及地址
2、添加远程仓库
- git remote add <shortname> <url>
3、从远程仓库克隆
- git clone <url>
4、移除远程仓库
- git remote rm <name>
5、从远程仓库抓取
- git fetch 是从远程仓库获取最新版本到本地仓库,不会自动merge
- git pull 是从远程仓库获取最新版本并merge到本地仓库
- 注意:如果当前本地仓库不是从远程仓库克隆,而是本地创建的仓库,并且仓库中存在文件,此时再从远程仓库拉取文件的时候会报错(fatal: refusing to merge unrelated histories ),解决此问题可以在git pull命令后加入参数--allow-unrelated-histories
6、推送到远程仓库
- ugit push [remote-name] [branch-name]
分支操作
1、查看分支
-
# 列出所有本地分支
-
$ git branch
-
# 列出所有远程分支
-
$ git branch -r
-
# 列出所有本地分支和远程分支
-
$ git branch -a
2、创建分支
-
git brach <name>
3、切换分支
-
git checkout <name>
4、推送至远程仓库分支
-
git push <仓库名> <分支名>
5、合并分支
-
git merge <分支名> 把目标分支,合并到当前分支
6、新添加的文件推送至远程仓库分支
-
git push <仓库名> <分支名>
7、删除分支
-
gir brach id <分支名>
-
如果要删除的分支中进行了一些开发动作,此时执行上面的删除命令并不会删除分支,如果坚持要删除此分支,可以将命令中的-d参数改为-D
五、在IDEA中配置Git
安装好IntelliJ IDEA后,如果Git安装在默认路径下,那么idea会自动找到git的位置,如果更改了Git的安装位置则需要手动配置下Git的路径。
选择File→Settings打开设置窗口,找到Version Control下的git选项:
选择git的安装目录后可以点击“Test”按钮测试是否正确配置
在IDEA中创建工程并将工程添加至Git