1 git概述
1.1 简介
git
是分布式版本控制系统(Distributed Version Control System,简称DVCS),分为两种仓库 :本地仓库
和远程仓库
。
本地仓库
:是在开发人员自己电脑上的Git仓库远程仓库
:是在远程服务器上的Git仓库
Clone
:克隆,就是将远程仓库复制到本地Push
:推送,就是将本地仓库代码上传到远程仓库Pull
:拉取,就是将远程仓库代码下载到本地仓库
1.2 工作流程
工作流程如下:
- 从远程仓库中
克隆
代码到本地仓库 - 从本地仓库中
checkout
代码,然后进行代码修改 - 在提交前先将代码提交到
暂存区
- 提交到本地仓库。本地仓库中保存修改的各个
历史版本
- 修改完成之后,需要和团队成员共享代码时,将代码
push
到远程仓库
1.3 Git的下载和安装
下载地址:官网地址,点一下就行
然后双击下载的安装文件,一直傻瓜式的下一步就行吗,如果想更改安装目录,就在最开始的时候选择你想要安装的目录就行。
安装好git之后,在你电脑的任何一个文件夹,桌面也可以,右键一下,如果在列表里面出现了下面两个选项,就说明安装成功了。
2 Git代码托管服务
2.1 常用的Git代码托管服务
前面我们已经了解到了git中存在两个类型的仓库,即本地仓库
和远程仓库
。那么我们如何搭建Git远程仓库呢?其中我们可以借助互联网上提供的一些代码托管服务来实现,其中常用的有GitHub
、码云
、GitLib
等。
可能是因为我是中国人,习惯看中文,所以我个人比较喜欢码云
,用它来托管我们的服务
想使用码云的相关服务,需要注册账号,注册地址
注册完之后,就可以登录你的远程仓库啦
紧接着,就可以创建一个名为:MyGitRept
创库玩一玩咯
创建完成之后,就可以查看仓库信息
每一个Git远程仓库都会对应一个网络地址,可以点击克隆/下载按钮弹出窗口并点击复制按钮获得这个网络地址
我们当前的网络地址为:https://gitee.com/ldy0206/myGitRept.git
3 Git常用命令
主要介绍一下命令:环境配置
、获取Git仓库
、工作目录、暂存区以及版本库概念
、Git工作目录下的两种状态
、本地仓库操作
、远程仓库的使用
、分支
、标签
3.1 环境配置
当安装Git后,首先要做的事情就是设置用户名和email地址,这是非常重要的,因为每次Git提交都会使用该用户信息
-
设置用户信息
git config --global user.name "刘小亮"
git config --global user.email 1078813134@qq.com
-
查看配置信息
git config --list
git config user.name
通过上面的命令设置的信息会保存在 ~/.gitconfig
文件中
3.2 获取Git仓库
要使用Git对我们的代码进行版本控制,首先需要获得git仓库
获取Git仓库常用的两种方式:
- 在本地初始化一个Git仓库
- 从远程仓库克隆
3.2.1 在本地初始化一个Git仓库
执行步骤如下:
- 在电脑的任意位置创建一个空目录(例如repo1)作为我们的本地Git仓库
- 进入这个目录中,点击右键打开Git bash窗口
- 执行命令
git init
如果在当前目录中看到.git
文件夹(此文件夹为隐藏文件夹),则说明Git仓库创建成功
3.2.2 从远程仓库克隆
可以通过Git提供的命令从远程仓库进行克隆,将远程仓库克隆到本地
命令形式为:git clone 远程Git仓库地址
2.3 工作目录、暂存区以及版本库概念
- 版本库:前面看到的
.git
隐藏文件夹就是版本库,版本库中存储了很多配置信息、日志信息和文件版本信息等 - 工作目录(工作区):包含
.git
文件夹的目录就是工作目录,主要用于存放开发的代码。 - 暂存区:
.git
文件夹中有很多文件,其中有一个index
文件就是暂存区,也可以叫做stage。暂存区是一个临时保存修改文件的地方。
2.4 Git工作目录下的两种状态
Git工作目录下的文件存在两种状态:
untracked
未跟踪(未被纳入版本控制)tracked
已跟踪(被纳入版本控制)Unmodified
未修改状态Modifed
已修改状态Staged
已暂存状态
这些文件的状态会随着我们执行Git的命令发生变化
2.5 本地仓库操作
git status
查看文件状态
也可以使用git status -s
是输入的信息更加的简介
git add
将未跟踪的文件加入暂存区
将新创建的文件加入暂存区后查看文件的状态
git resst
将暂存区的文件取消暂存
将文件取消暂存后查看文件状态
git commit
将暂存区的文件修改提交到本地仓库
git rm
删除文件
删除文件后查看文件状态
上面删除的只是工作区的文件,需要提交到本地仓库
- 将文件添加到忽略列表
一般我们总会有些文件无需纳入git的管理,也不希望他们总出现在为跟踪文件列表。通常都是些自动生成的文化,比如日志文件、或者编译过程中创建的临时文件等。在这种情况下,我们可以在工作目录中创建一个名为.gitignore
的文件(文件名称固定),列出要忽略的文件模式。下面是一个示例:
git log
查看日志记录
2.6远程仓库操作
下面会分别介绍查看远程仓库
、添加远程仓库
、从远程仓库克隆
、移除无效的远程仓库
、从远程仓库中抓取与拉取
、推送到远程仓库
。
查看远程仓库
如果想查看已经配置的远程仓库服务器,可以运行git remote
命令。它会列出指定的每一个远程服务器的简写。如果已经克隆了远程仓库,那么应该至少能看到origin
,这是git克隆的仓库服务器的默认名字。
添加远程仓库
运行git remote add <shortname> <url>
添加一个新的远程git仓库,同时指定一个可以引用的简写
从远程仓库克隆
如果你想获得一份已经存在的git仓库的拷贝,这时就要利用git clone
命令了。git克隆的是改git仓库服务器上的几乎所有数据(包括日志信息、历史记录等),而不仅仅是复制工作所需要的文件。当你执行git clone
命令的时候,默认配置下远程git仓库中的每一个文件的每一个版本都将被拉取下来。
克隆仓库的命令是git clone [url]
移除无效的远程仓库
如果因为一些原因想要移除一个远程仓库,可以使用git remote em
注意:此命令只是从本地移除远程仓库的记录,并不会真正影响到远程仓库
从远程仓库中抓取与拉取
git fetch
是从远程仓库获取最新版本到本地仓库,不会自动merge
git pull
是从远程仓库获取最新版本并merge
到本地仓库
git fetch
是从远程仓库获取最新版本到本地仓库,不会自动merge
git pull
是从远程仓库中获取最新版本并merge
到本地仓库
注意:如果当前本地仓库不是从远程仓库克隆,而是本地创建的仓库,并且仓库中存在文件,此时在从远程仓库拉取文件的时候会报错(fatal:refusing to merge unrelated histories),解决此问题可以在git pull
命令后加入参数--allow-unrelated -histories
推送到远程仓库
当你想分享你的代码时,可以将其推送到远程仓库
命令形式:git push [remote -name] [brach -name]