git的作用
-
代码回溯
-
版本切换
-
多人协作
-
远程备份
简介
-
Git是一个分布式版本控制工具,通常用来对软件开发过程中的源代码文件进行管理。通过Git仓库来存储和管理这些文件,Git仓库分为两种:
-
本地仓库:开发人员自己电脑上的Git仓库
-
远程仓库:远程服务器上的Git仓库
Git常用命令
Git全局配置
-
设置用户信息:
git config --global user.name "XXXXX"
git config --global user.email "XXXXX@xxxx"
-
查看配置信息
git config --list
获取Git仓库
要使用Git对我们的代码进行版本控制,首先需要获得Git仓库。获取Git仓库通常有两种方式
-
在本地初始化一个Git仓库
-
从远程仓库克隆
本地初始化
执行步骤如下:
-
在任意目录下创建一个空目录作为我们的本地Git仓库
-
进入这个目录中,点击右键打开Git bash窗口
-
执行命令 git init
如果在当前目录中看到.git文件夹(隐藏文件夹)则说明Git仓库创建成功。
克隆远程仓库
可以通过Git提供的命令从远程仓库进行克隆,将远程仓库克隆到本地
命令形式:git clone [远程git仓库地址]
基本概念
版本库: 前面看到的.git隐藏文件夹就是版本库,版本库中存储了很多配置信息、日志信息和文件版本信息等
工作区: 包含.git文件夹的目录就是工作区,也称为工作目录,主要用于存放开发的代码
暂存区: .git文件夹中有很多文件,其中有一个index文件就是暂存区,也可以叫做stage。暂存区是一个临时保存修改文件的地方
工作区文件状态
Git工作区中的文件存在两种状态
-
untracked 未跟踪(未被纳入版本控制)
-
tracked 已跟踪(被纳入版本控制)
-
Unmodified 未修改状态
-
Modified 已修改状态
-
Staged 已暂存状态
-
本地仓库操作
本地仓库常用命令如下:
-
Git status 查看文件状态
-
Git add 将文件的修改加入暂存区
-
Git reset 将暂存区的文件取消暂存或者是切换到指定版本
-
Git commit 将暂存区的文件修改提交到版本库
-
Git log 查看日志
版本切换
Git reset --hard [版本号]
注:版本号可以用git log来查看
远程仓库操作
远程仓库常见命令:
-
Git remote 查看远程仓库
-
Git remote add 添加远程仓库
-
Git clone 从远程仓库克隆
-
Git pull 从远程仓库拉取
-
Git push 推送到远程仓库
查看
如果想查看已经配置的远程仓库服务器,可以运行git remote命令,它会列出每一个远程服务器的缩写。如果已经克隆了远程仓库,那么至少应该能看到origin,这是Git克隆的仓库服务器的默认名字。
添加远程仓库
添加远程仓库,运行git remote add <shortname> <url>
添加一个新的远程仓库,shortname为给这个远程仓库起的别名。
克隆
Git克隆的是该Git仓库服务器上的几乎所有数据(包括日志信息、历史记录等),而不仅仅是复制工作所需要的文件。
克隆仓库的命令格式是:git clone [url]
推送
将本地仓库内容推送到远程仓库,可以使用命令:git push [remote name] [branch name]
拉取
git pull
命令的作用是从远程仓库获取最新版本并合并到本地仓库,命令格式:git pull [short name] [branch name]
注意:
如果当前本地仓库不是从远程仓库克隆,而是本地创建的仓库,并且仓库中存在文件,此时再从远程仓库拉取文件的时候会报错(fatal:refusing to merge unrelated histories)
解决此问题可以在git pull命令后加入参数--allow-unrelated-histories
分支操作
分支是Git使用过程中非常重要的概念。使用分支意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线。同一个仓库可以有多个分支,各个分支相互独立,互不干扰。
-
通过git init 命令创建本地仓库时默认会创建一个master分支
关于分支的相关命令:
-
Git branch 查看分支
-
Git branch [name] 创建分支
-
Git checkout [name] 切换分支
-
Git push [shortname] [name] 推送至远程仓库分支
-
Git merge [name] 合并分支
-
将指定分支的代码合并到当前分支
-
-
Git branch -d [name] 删除分支
查看
-
Git branch 列出所有本地分支
-
Git branch -r 列出所有远程分支
-
Git branch -a 列出所有本地分支和远程分支
标签操作
Git中的标签,指的是某个分支某个特定时间点的状态,通过标签,可以很方便的切换到标记时的状态。
比较有代表性的是人们会使用这个功能来标记发布结点(v1.0 、v1.2等)
下面是和标签相关的命令:
-
Git tag 列出已有的标签
-
Git tag [name] 创建标签
-
Git push [shortname] [name] 将标签推动到远程仓库
-
Git checkout -b [branch] [name] 检出标签
列出已有标签
-
列出已有标签可以使用命令:
git tag
创建
-
创建标签可以使用命令:
git tag [name]
推送到远程
-
将标签推送到远程仓库的命令格式:
git push [shortname] [name]