Git的基本配置与使用
一.最流行的分布式版本控制软件
介绍
Git 是目前最流行的分布式版本控制软件 在开发的过程中用于管理对文件、目录或工程等内容的修改历史,方便查看历史记录,备份以便恢复以前的版本的软件工程技术
实现功能
- 实现跨区域多人协同开发
- 追踪和记载一个或者多个文件的历史记录
- 组织和保护你的源代码和文档
- 统计工作量
- 并行开发、提高开发效率
- 跟踪记录整个软件的开发过程
- 减轻开发人员负担,节省时间,同时降低人为错误
版本控制分类
本地版本控制
记录文件每次的更新,可以对每个版本做一个快照,或是记录补丁文件,适合个人用,如 RCS
集中版本控制
- 所有的版本数据都保存在服务器上,协同开发者从服务器上同步更新或上传自己的修改
- 用户的本地只有自己以前所同步的版本,如果不连网的话,用户就看不到历史版本,也 无法切换版本
- 所有数据都保存在单一的服务器上,如果这个服务器会损坏(有很大的风险), 这样就会 丢失所有的数据,需要定期备
- 代表产品:SVN、CVS、VSS
分布式版本控制
- 所有版本信息仓库全部同步到本地的每个用户
- 可以在本地查看所有版本历史,可以离线在本地提交,只需在连网时 push 到相应的服 务器或其他用户那里。
- 每个用户那里保存的都是所有的版本数据,只要有一个用户的设备没有问题就可以恢复 所有的数据
- 更加安全, 不会因为服务器损坏或者网络问题,造成不能工作的情况
- 代表软件: Git
二.下载与安装
官网Git (git-scm.com) 傻瓜式安装
文档与互动练习
https://gitee.com/all-about-git
https://learngitbranching.js.org/?locale=zh_CN
三.基本配置
初始设置
首先设置电子邮箱和用户名,因为每次提交都会使用该信息
git config --global user.name "leon"
git config --global user.email "le0n67@163.com"
git config --global http.sslVerify false
查看配置
查看所有配置 系统配置 当前用户配置
git config -l
git config --system --list
git config --global --list
四.Git工作原理*
1.四个工作区&关系
Git 本地有三个工作区域:工作目录(Working Directory)、暂存区(Stage/Index)、资源库 (Repository 或 Git Directory)。如果再加上远程的 git 仓库(Remote Directory)就可以分为四个 工作区域。文件在这四个区域之间的转换关系如下
1.1. Workspace: 工作区,平时开发时存放代码的地方
1.2. Index/Stage: 暂存区,用于存放临时改动,保存即将提交的文件列表信息
1.3. Repository: 仓库区(本地仓库) ,安全存放数据的位置,这里有你提交的所有版本的数据,其中HEAD指向最新放入仓库的版本
1.4. Remote: 远程仓库,即托管代码的服务器(GitHub/Gitee)
本地三区域
- Directory:使用 Git 管理的一个目录,也就是一个仓库,包含我们的工作空间和 Git 的管 理空间。
- WorkSpace:需要通过 Git 进行版本控制的目录和文件,这些目录和文件组成了工作空间。
- .git:存放 Git 管理信息的目录,初始化仓库的时候自动创建。
- Index/Stage:暂存区,或者叫待提交更新区,在提交进入 repo 之前,我们可以把所有的 更新放在暂存区。
- Local Repo:本地仓库,一个存放在本地的版本库;HEAD 只是当前的开发分支(branch)。
- Stash:隐藏,是一个工作状态保存栈,用于保存/恢复 WorkSpace 中的临时状态。
2.工作流程
- 在工作目录中添加、修改文件;
- 将需要进行版本管理的文件放入暂存区域;
- 将暂存区域的文件提交到 git 本地仓库。 因此,git 管理的文件有三种状态:已修改(modified),已暂存(staged),已提交(committed)
五.仓库创建
1. 创建工作目录
- 工作目录(WorkSpace)一般就是你希望 Git 帮助你管理的文件夹,可以是你项目的目录, 也可以是一个空目录,建议不要有中文
- 6 个命令
2. 本地创建/远程克隆
$ git init #在所在目录作为本地仓库初始化,创建.git文件夹
$ git clone [url] #将url所指向的远程git仓库克隆到本地当前目录
六.文件管理
1. 文件的四种状态
● 版本控制就是对文件的版本控制,在 Git 管理中,文件被统一管理,有四个状态
- Untracked: 未跟踪, 此文件在文件夹中, 但并没有加入到 git 库, 不参与版本控制. 通过 git add 状态变为 Staged
- Unmodify: 文件已经入库, 未修改, 即版本库中的文件快照内容与文件夹中完全一致. 这 种类型的文件有两种处理方式, 如果它被修改, 变为 Modified. 如果使用 git rm 移出版本库, 则成为 Untracked
- Modified: 文件已修改, 仅仅是修改, 并没有进行其他的操作. 这种文件有两个去处, 通过 git add 可进入暂存 staged 状态, 使用 git checkout 则丢弃修改过, 返回到 unmodify 状态,这个 git checkout 即从库中取出文件, 覆盖当前修改
- \4. Staged: 暂存状态. 执行 git commit 则将修改同步到库中, 这时库中的文件和本地文件又变为一致, 文件为 Unmodify 状态. 执行 git reset HEAD filename 取消暂存, 文件状态为Modified
$ git status [filename] #查看指定文件状态
$ git add . # 将指定文件加入暂存区
$ git commit -m "message" # 提交暂存区文件到本地仓库 附加提交信息
$ git push # 推送到远程仓库
2. 忽略文件
如果不想把某些文件纳入版本控制中,比如数据库文件,临时文件,设计文件等, 在主目录 下建立".gitignore"文件(默认就有),此文件有如下规则:
- 忽略文件中的空行或以井号(#)开始的行
- 支持 Linux 通配符。例如:星号(*)代表任意多个字符,问号(?)代表一个字符, 方括号([abc])代表可选字符范围,大括号({string1,string2,...})代表可选的字符串等。
- 如果名称的最前面有一个感叹号(!),表示例外规则,将不被忽略。
- 如果名称的最前面是一个路径分隔符(/),表示忽略 .gitignore 文件所在的目录,不包 括其任何子目录 中的 dir 目录
- 如果名称的最后面是一个路径分隔符(/),忽略 .gitignore 文件所在的目录和所有子目 录的 dir
# Compiled class file
*.class
# Log file
*.log
# BlueJ files
*.ctxt
# Mobile Tools for Java (J2ME)
.mtj.tmp/
# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
replay_pid*
七.分支管理
https://gitee.com/all-about-git
注意事项和细节说明
- 如果同一文件在合并分支时都被修改了则会引起冲突, 修改冲突文件后重新提交(说明: 这时要决定保留哪个分支代码)
- Master 主分支应该非常稳定,用来发布新版本,一般情况下不要在上面工作,工作一般 在新建的分支(比如 dev、v1.0、v2.0)上工作
- 分支代码稳定后,可以合并到主分支 Master
- 在进行分支合并时, 最好是各分支都已经处于 Committed 的状态, 这样可以减小处理合 并冲突的难度. 5. Push 操作, 是 Push 你已经 Committed 的代码, 如果你修改了一个文件, 但是你没有执行 Commit ,那么你 Push 的其实是上次 Committed 的状态
- add 、 commit 、push 的操作可以针对单个文件, 也可以针对文件夹(可以看一下 Idea 的 git 操作菜单)
- 文件要 Commit 前需要先 Add 到 暂存区 , 以后文件修改了, 就可以直接 Commit
- 如果要删除文件, 可以在本地删除该文件, 然后 commit 文件所在文件夹即可, 并重新 push 该分支, 那么在远程仓库, 也会删除对应分支的文件.
- 一.最流行的分布式版本控制软件
- 介绍
- 实现功能
- 版本控制分类
- 本地版本控制
- 集中版本控制
- 分布式版本控制
- 二.下载与安装
- 文档与互动练习
- 三.基本配置
- 初始设置
- 查看配置
- 四.Git工作原理*
- 1.四个工作区&关系
- 1.1. Workspace: 工作区,平时开发时存放代码的地方
- 1.2. Index/Stage: 暂存区,用于存放临时改动,保存即将提交的文件列表信息
- 1.3. Repository: 仓库区(本地仓库) ,安全存放数据的位置,这里有你提交的所有版本的数据,其中HEAD指向最新放入仓库的版本
- 1.4. Remote: 远程仓库,即托管代码的服务器(GitHub/Gitee)
- 2.工作流程
- 五.仓库创建
- 1. 创建工作目录
- 2. 本地创建/远程克隆
- 六.文件管理
- 1. 文件的四种状态
- 2. 忽略文件
- 七.分支管理
- https://gitee.com/all-about-git
- 注意事项和细节说明

0 评论