目录
1.1关于Git的一些概念
Git | 分布式版本控制系统(Distributed Version Control System,简称 DVCS) ,分为两种类型的仓库:本地仓库和远程仓库。 |
本地仓库 | 在开发人员自己电脑上的Git仓库 |
远程仓库 | 在远程服务器上的Git仓库 |
Clone | 克隆,就是将远程仓库复制到本地 |
Push | 推送,就是将本地仓库代码上传到远程仓库 |
Pull | 拉取,就是将远程仓库代码下载到本地仓库 |
版本库 | .git隐藏文件夹就是版本库,版本库中存储了很多配置信息、日志信息和文件版本信息等 |
工作目录(工作区) | 包含.git文件夹的目录就是工作目录,主要用于存放开发的代码 |
暂存区 | .git文件夹中有很多文件,其中有一个index文件就是暂存区,也可以叫做stage。暂存区是一个临时保存修改文件的地方 |
1.2 Git工作流程
工作流程如下:
1.从远程仓库中克隆代码到本地仓库
2.从本地仓库中checkout代码然后进行代码修改
3.在提交前先将代码提交到暂存区(add)
4.提交到本地仓库。本地仓库中保存修改的各个历史版本(commit)
5.修改完成后,需要和团队成员共享代码时,将代码push到远程仓库
2.1 常用的Git代码托管服务
前面我们已经知道了Git中存在两种类型的仓库,即本地仓库和远程仓库。那么我们如何搭建Git远程仓库呢?我们可以借助互联网上提供的一些代码托管服务来实现,其中比较常用的有GitHub、码云、GitLab等。
gitHub( 地址:https://github.com/ )是一个面向开源及私有软件项目的托管平台,因为只支持Git 作为唯一的版本库格式进行托管,故名gitHub
码云(地址: Gitee – 基于 Git 的代码托管和研发协作平台 )是国内的一个代码托管平台,由于服务器在国内,所以相比于GitHub,码云速度会更快
GitLab (地址: Iterate faster, innovate together|GitLab )是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务
本文介绍的是码云。
2.2 常用Git命令
环境配置 |
设置用户信息 |
git config –global user.name “yxp” |
||||
git config –global user.email “2433112463@qq.com” | ||||||
查看配置信息 | git config –list | |||||
git config user.name | ||||||
获取Git仓库 |
在本地初始化一个Git仓库 | git init | ||||
从远程仓库克隆 | git clone 远程Git仓库地址 | |||||
本地仓库操作 |
查看文件状态 | git status [-s] | ||||
将未跟踪的文件加入暂存区 | git add 文件名 | |||||
将暂存区的文件取消暂存 | git reset | |||||
将暂存区的文件修改提交到本地仓库 | git commit [-m “日志信息”] | |||||
删除工作区的文件 | git rm 文件名 | |||||
将文件添加至忽略列表 | 在工作目录中创建一个名为 .gitignore 的文件(文件名称固定),列出要忽略的文件模式。 | |||||
示例 | ||||||
远程仓库操作 |
查看已经配置的远程仓库服务器 | git remote | 如果已经克隆了远程仓库,那么至少应该能看到 origin ,这是 Git 克隆的仓库服务器的默认名字 | |||
添加远程仓库 |
git remote add <shortname> <url> | |||||
从远程仓库克隆 |
git clone [url] | |||||
移除无效的远程仓库 |
git remote rm 仓库名 |
注意:此命令只是从本地移除远程仓库的记录,并不会真正影响到远程仓库 |
||||
从远程仓库中抓取与拉取 |
注意:如果当前本地仓库不是从远程仓库克隆,而是本地创建的仓库,并且仓库中存在文件,此时再从远程仓库拉取文件的时候会报错(fatal: refusing to merge unrelated histories ),解决此问题可以在git pull命令后加入参数–allow-unrelated-histories | git fetch 仓库名 分支名 | 从远程仓库获取最新版本到本地仓库,不会自动merge | |||
git pull | 从远程仓库获取最新版本并merge到本地仓库 | |||||
推送到远程仓库 |
git push 仓库名 分支 | |||||
Git分支 |
列出分支 | 所有本地分支 | git branch | |||
所有远程分支 | git branch -r | |||||
所有本地分支和远程分支 | git branch -a | |||||
创建分支 |
git branch 分支名 | |||||
切换分支 |
git checkout 分支名 | |||||
推送至远程仓库分支 |
git push 仓库名 分支名 | |||||
合并分支 |
git merge 分支名 |
有时候合并操作不会如此顺利。 如果你在两个不同的分支中,对同一个文件的同一个部分进行了不同的修改,Git 就没办法合并它们,同时会提示文件冲突。此时需要我们打开冲突的文件并修复冲突内容,最后执行git add命令来标识冲突已解决 |
||||
删除分支 |
git branch -d 分支名 | 如果要删除的分支中进行了一些开发动作,此时执行上面的删除命令并不会删除分支,如果坚持要删除此分支,可以将命令中的-d参数改为-D | ||||
git push 仓库名 –d branchName | ||||||
3.1 在IDEA中使用git
创建工程并将工程添加至Git |
||
将文件添加到暂存区 |
||
提交文件 |
||
将代码推送到远程仓库 |
||
从远程仓库克隆工程到本地 |
||
从远程拉取代码 |
||
版本对比 |
||
创建分支 |
||
切换分支 |
||
分支合并 |