Git 概述
Git 简介
Git 是一个 分布式 版本控制工具。
通常用来对软件开发过程中的源代码文件(Java 类、xml 文件、html 页面等)进行管理。
软件开发过程中,一般通过 Git 仓库来存储和管理众多的源代码文件。
- Git 仓库分为两种
本地仓库:开发人员自己电脑上的 Git 仓库
-
- 远程仓库:远程服务器上的 Git 仓库
- commit:提交,将本地文件和版本信息保存到本地仓库。
- push:推送,将本地仓库文件和版本信息上传到远程仓库。
- pull:拉取,将远程仓库文件和版本信息下载到本地仓库。
学完 Git 后我们可以做什么?
代码回溯、版本切换、多人协作、远程备份。
Git 的下载和使用
下载地址:git-scm.com/download
安装完成后在任意目录下点击鼠标右键,若可以看到如下菜单则表示安装完成。
- Git GUI Here:打开 Git 图形界面
- Git Bash Here:打开Git 命令行
Git 代码托管服务
常用的 Git 代码托管服务
Git 中存在两种类型的仓库:本地仓库、远程仓库。
我们可以借助互联网上提供的一些代码托管服务来实现 git 远程仓库的搭建。
其中比较常用的有:GitHub、码云(Gitee)、GitLab 等。
- GitHub(github.com)是一个面向开源及私有软件项目的托管平台。
-
- 只支持 Git 作为唯一的版本库格式进行托管。
- 码云(gitee.com)是国内的一个代码托管平台。
-
- 由于服务器在国内,所以相比于 GitHub,码云速度会更快。
- 注:2022 年 5 月 18 日 Gitee 仓库开源须审核,已开源部分仓库暂时关闭,审核通过后再次公开。
- GitLab(about.gitlab.com)是一个用于仓库管理系统的开源项目。
-
- 使用 Git 作为代码管理工具,并在此基础上搭建起来的 web 服务。
使用 GitHub 代码托管服务
- GitHub 注册网址:github.com/signup
- GitHub 登录网址:github.com/login
Git 常用命令
Git 全局设置
当安装 Git 后首先要做的事情是设置用户名称和 email 地址。这是非常重要的,因为每次 Git 提交都会使用该用户信息。
- 设置用户信息(签名)
git config --global user.name "qsdgw"
git config --global user.email "qsdgw@qq.com"
- 说明
-
- 签名的作用是区分不同操作者身份。
- 用户的签名信息在每一个版本的提交信息中能够看到,以此确认本次提交是谁做的。
- Git 首次安装必须设置一下用户签名,否则无法提交代码。
- 注意
-
- 这里设置用户签名和将来登录 GitHub(或其他代码托管中心)的账号没有任何关系。
获取 Git 仓库
要使用 Git 对我们的代码就行版本控制,首先需要获得 Git 仓库。
- 获取 Git 仓库通常有两种方式
-
- 在本地初始化一个Git仓库(不常用)
- 从远程仓库克隆(常用)
- 在本地初始化一个 Git 仓库
- 执行步骤
-
- 在任意目录下创建一个空目录(例如repo1)作为我们的本地仓库
- 进入这个目录中,点击右键打开 Git bash 窗口
- 执行命令:git init
如果可以在当前目录中看到 .git 文件夹(该文件夹是隐藏文件夹),则说明 Git 仓库创建成功。
- 从远程仓库克隆
可以通过 Git 提供的命令从远程仓库进行克隆,将远程仓库克隆到本地。
git clone [远程Git仓库地址]
工作区、暂存区、版本库概念
为了更好的学习 Git,我们需要了解 Git 相关的一些概念,这些概念在后面的学习中会经常提到。
- 版本库:前面看到的 .git 隐藏文件夹就是版本库,版本库中存储了很多配置信息、日志信息和文件版本信息等。
- 工作目录(工作区):包含 .git 文件夹的目录就是工作目录,主要用于存放开发的代码。
- 暂存区:一个临时保存修改文件的地方。
-
- .git 文件夹中有很多文件,其中有一个名为 index 文件就是暂存区,也可以叫做 stage。
Git 工作区中文件的状态
Git 工作目录下的文件存在两种状态。
- untracked 未跟踪(未被纳入版本控制)
- tracked 已跟踪(被纳入版本控制)
-
- Unmodified 未修改状态
- Modified 已修改状态
- Staged 已暂存状态
这些文件的状态会随着我们执行 Git 的命令发生变化
本地仓库操作
本地仓库常用命令
| 命令 | 功能 |
|---|---|
| git config --global user.name 用户名 | 设置用户签名 |
| git config --global user.email 邮箱 | 设置用户签名 |
| git init | 初始化本地库 |
| git status | 查看文件状态 |
| git add [文件名称] | 将文件的修改加入暂存区 |
|---|---|
| git reset [文件名称] | 将暂存区的文件取消暂存 |
| git reset --hard [版本号] | 切换到指定版本 |
| git commit [文件名] | 将暂存区文件提交到版本库中 |
|---|---|
| git commit -m "日志信息" [文件名] | 将暂存区的文件提交到版本库中 |
| git log | 查看日志 |
| git reflog | 查看历史记录 |
远程仓库操作
远程仓库常用命令
| 命令 | 功能 |
|---|---|
| git remote | 查看远程仓库 |
| git remote -v | 查看当前所有远程地址别名 |
| git remote add | 添加远程仓库 |
| git clone [url] | 从远程仓库克隆 |
| git pull [short-name] [branch-name] | 从远程仓库拉取 |
| git push [short-name] [branch-name] | 推送到远程仓库 |
分支操作
分支是 Git 使用过程中非常重要的概念。
几乎所有的版本控制系统都以某种形式支持分支。
使用分支意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线。
Git 的 master 分支并不是一个特殊分支。 它跟其它分支没有区别。
之所以几乎每一个仓库都有 master 分支,是因为 git init 命令默认创建它,并且大多数人都懒得去改动它。
同一个仓库可以有多个分支,各个分支相互独立,互不干扰。
在Goland中简单使用Git
在Goland中配置Git地址
使用Git从远程仓库克隆
- 首先在Github或其他代码托管平台找到如下Code
- 复制HTTPS链接到Goland的URL中,点击Clone
- 项目会Clone完毕,打开项目,根据要求安装相应的依赖即可
远程仓库操作
- 查看远程仓库
- 添加远程仓库
- 推送到远程仓库
- 从远程仓库中拉取
分支操作
创建分支
将分支推送到远程
合并分支