基础知识梳理
# Git 基础知识梳理
命令学习:Learn Git Branching (opens new window)
Git 命令大全:Git 大全 (opens new window)
# 版本控制
# 什么是版本控制?
版本控制是一种记录一个或若干个文件内容变化,以便将来查阅特定版本修订情况的系统。关键时刻,可以回退版本。
除了项目源代码,你可以对任何类型的文件进行版本控制。
# 为什么需要版本控制?
- 版本控制可以让你将某个文件回溯到之前的状态,甚至将整个项目都回退到过去某个时间点的状态。
- 你还可以通过提交的历史记录来比较文件的变化细节,查出最后是谁修改了哪个地方,从而找出导致怪异问题出现的原因,又是谁在何时报告了某个功能缺陷等等。
# 三大版本控制系统
# 本地版本控制系统
方便个人管理项目文件。
大多都是采用某种简单的数据库来记录文件的历次更新差异。
# 集中化的版本控制系统
为解决开发者协同合作问题而生。
都有一个单一的集中管理的服务器,可以保存所有文件的修订版本,协同工作的开发者们都可以通过客户端连到这台服务器,取出最新的文件或者提交更新。
有两个问题:
- 单点故障: 中央服务器宕机,则其他人无法使用;如果中心数据库磁盘损坏又没有进行备份,你将丢失所有数据。本地版本控制系统也存在类似问题,只要整个项目的历史记录被保存在单一位置,就有丢失所有历史更新记录的风险。
- **必须联网才能工作:**受网络状况和网络带宽影响。
# 分布式版本控制系统
为解决上面的问题面世,比如:Git
有以下几个优点:
- 这类系统,客户端并不只提取最新版本的文件快照,而是把代码仓库完整地克隆下来。这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个克隆出来的本地仓库恢复。因为每一次的克隆操作,实际上都是一次对代码仓库的完整备份。
- 可以不用联网工作,因为每个人的电脑上都是完整的版本库。
- 强大的分支管理功能。
# 在开发中,常用的 git 开发操作流程是怎样的?
在使用 Git 进行开发时,常用的操作流程包括:
创建 Git 仓库:使用
git init
命令初始化一个新的 Git 仓库。也可以使用git clone
命令克隆一个远程仓库到本地。添加文件到暂存区:使用
git add
命令将修改的文件添加到 Git 的暂存区中。提交修改:使用
git commit
命令提交修改。可以使用-m
参数指定提交的注释信息。分支操作:使用
git branch
命令创建、删除、查看分支。使用git checkout
命令切换分支。合并分支:使用
git merge
命令将一个分支合并到当前分支。推送修改:使用
git push
命令将本地修改推送到远程仓库。拉取修改:使用
git pull
命令从远程仓库拉取最新修改。查看修改历史:使用
git log
命令查看提交历史。撤销修改:使用
git reset
命令撤销某次提交。可以使用--soft
参数保留修改到暂存区,使用--mixed
参数保留修改到工作区,使用--hard
参数彻底删除修改。标签操作:使用
git tag
命令创建、删除、查看标签。标签可以用于标记某个版本,便于后续查找和发布。
# Git 快速入门
# Git 有哪三种状态?
- 已提交(committed):数据已经安全的保存在本地数据库中。
- 已修改(modified):已修改表示修改了文件,但还没保存到数据库中。
- 已暂存(staged):表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。
# Git 关联 idea 文件颜色的意思?
- 红色(red),未加入版本控制
- 绿色(green),已经加入版本控制暂未提交
- 蓝色(blue),加入版本控制,已提交,有改动
- 白色(white),加入版本控制,已提交,无改动
- 灰色(grey):版本控制已忽略文件
# Git 项目的三个工作区域
- 工作目录(working)
- 暂存区域(index)
- Git 仓库(HEAD)
working =add=>
index =commit=>
HEAD =push=>
远程仓库
# 基本的 Git 工作流程
- 准备仓库:创建或从服务端克隆一个仓库。
- 搬砖:在工作目录中添加、修改代码。
- 暂存(git add):将需要进行版本管理的文件放入暂存区域。
- 提交(git commit):将暂存区域的文件提交到Git仓库。
- 推送(git push):将本地仓库推送到远程仓库,同步版本库。
- 获取更新(fetch/pull):从服务端更新到本地,获取他人推送的更新,与他人协作、共享
在工作目录中修改文件。 -- 即写代码
暂存文件,将文件的快照放入暂存区域。 -- 即表示已修改,文件变蓝色
提交更新,找到暂存区域的文件,将快照永久性存储到 Git 仓库目录中。
文件的快照:就是指 文件的数据。是 Git 版本控制的核心。
# 查看 Git 版本号
指令:git -- version
# 什么是 Git Flow
Git Flow 是一种基于 Git 版本控制工具的分支管理工作流程,它定义了一套完整的分支模型,包括主分支、开发分支、功能分支、修复分支等,旨在优化团队协作、版本发布和代码质量等方面的工作流程。
# 常用操作
# 获取 Git 仓库
有两种方法:
在当前项目目录中初始化仓库:
右键点击
Git Bash Here
进入窗口运行git init
命令,该命令将创建一个名为.git
的子目录,代表已经加入版本控制。从一个服务器(远程仓库)克隆一个现有的 Git 仓库:
进入希望项目存放的目录地址,运行
git clone [url] 自定义文件夹名称
命令。注意,使用
Git
命令克隆的方式可以和 原项目 随时保持更新同步。克隆本地仓库
git clone /path/to/repository
# 添加和提交
添加、删除、改名:
# 添加指定文件到暂存区,包括被修改的文件
$ git add [file1] [file2] ...
# 添加当前目录的所有文件到暂存区
$ git add .
# 删除工作区文件,并且将这次删除放入暂存区
$ git rm [file1] [file2] ...
# 改名文件,并且将这个改名放入暂存区
$ git mv [file-original] [file-renamed]
2
3
4
5
6
7
8
9
10
11
提交:
git commit -m "代码提交信息"
-- 此时已提交到了本地仓库中
# 初始化一个 Readme文件
touch README.md
# 切换分支
git checkout <branch>
# 推送
查看本地 Git 仓库已经关联的远程仓库:
git remote -v
关联远程仓库:
git remote add origin <server>
推送分支:
git push origin master[分支名称]
origin
是远程仓库的名称,<server>
是远程仓库的 URL。
# 删除远程仓库关联
命令:git remote remove origin