Git – 基本使用说明
Git 概念
说明文档下载:
https://www.tzming.com/wp-content/uploads/filedown/git.doc
git 区域概念
git 中包含三种区域,分别是工作区、暂存区、存储区,工作区就是我们平时操作文件的区域,暂存区是用于判断工作区中的文件和存储区中的文件数据进行对比的区域,当出现工作区中的文件发生改变时,通过存储区就能判断出文件在什么位置发生什么样的改变。
工作区中的文件可以通过以下命令把文件存储到暂存区:
git add 文件名
暂存区中的文件可以通过以下命令把文件存储到存储区:
git commit -m "描述"
git 版本号概念
git 是通过文件的版本进行区分的,所以当我们使用 git 对文件进行提交后,git 会对文件生成一个 40 位的版本号,前2位为该文件所在的文件夹名称,后面38位为该文件在仓库中的存储文件名
说明:
- git 仓库中存在文件【HEAD】,它是用于定义当前操作的仓库分支,当HEAD 指向 master 时,则说明当前操作的仓库为 master
- 【HEAD】文件中保存的是该仓库的 refs\heads 文件目录中,其中的 分支文件则是指向该分支中的文件的版本号
- git 中包含三个文件来描述一个文件,分别是描述该文件的提交信息,该文件的状态,和该文件的内容
git 分支概念
当我们是一个团队对某个产品进行开发时,我们应该对不同的模块分发给不同的人进行开发,开发到后面再进行合并项目,但如果所有人都在同一个仓库中进行提交,这样会产生提交混乱
所以我们可以通过创建仓库的分支,对不同的模块进行各自开发,当开发完成后,就可以使用git进行合并为一个大的产品,同时因为使用分支,所以各自的提交并不会互相影响
又或者对某个产品进行大范围的升级改造时,为了避免出现与旧版本发生混乱,也可以使用分支进行隔断
使用 Github Desktop 进行 Git 操作
Github Desktop 比较简单,以下是 Github Desktop 软件的界面基本操作:
我们可以通过克隆、创建、加入的方式加入仓库到 Github Desktop 中
我们也可以通过Github Desktop创建分支
因为每一次的提交,版本号都是一串40位的编码,我们比较难理解每一次的记录。可以对操作记录进行标签化,标签化可以更明确的表达该提交的作用,同时标签也作为版本号的别名,当我们需要回退版本时,我们可以使用标签名来代替版本号进行回退。
当我们的工作区中出现了一些我们不希望存储到仓库中的文件时,我们可以对某些文件加入到忽略文件的操作,会产生一个 ignore 文件。
使用命令行进行 Git 操作
创建仓库
初始化一个仓库
git init
使用命令的方式创建仓库时,必须要做一次提交,才能创建分支,这是因为创建仓库时,heads 文件指向 master 但是 master 文件并没有被创建,需要先做一次文件提交后,master 文件会自动生成,再创建分支就可以了
创建分支
git branch 分支名称
查看当前所有分支和当前正在操作的分支
git branch -v
克隆仓库
克隆指的是把别人的仓库中的所有文件,复制一份,并在本地仓库中存储一份仓库
git clone git地址
克隆后,会在本地生成一个与项目名一致的仓库文件夹,如果希望自定义仓库文件夹,可以在后面追加仓库名
git clone git地址 仓库名
切换分支
git checkout 分支名称
checkout 还支持创建并切换分支的功能
git checkout -b 分支名称
会创建一个分支,并把当前操作切换到新创建的分支上
删除分支
git checkout -d 分支名称
合并分支
合并分支是指把其它分支的文件,合并到当前操作的分支中
当前为master仓库
git merge 分支名
当出现其它分支与当前操作的仓库存在文件冲突时,合并会出现中断,并提示发生冲突的文件,这时我们需要手动对发生冲突的文件进行人为的干预,人工选择使用哪一个分支的内容。
文件操作
文件操作分为五种
- clone: 把别人的仓库完完全全的复制一份回来作为自己的仓库
- pull: 把仓库中的相应文件下载下来并合并到本地仓库中创,比如云上有a.txt而本地中没有,则pull后会把a.txt存到本地仓库中
- fetch: 把仓库中的相应文件下载下来但不进行合并到本地仓库中,需要手动提交
- push: 把本地仓库中的特定文件(指被修改过的)提交到云仓库中
- publish: 当远程仓库中没有任何文件时,本地仓库把所有文件都提交到远程仓库中
克隆:
git clone git地址 [本地仓库名]
远程拉取并合并:
git pull origin
远程提交到仓库:
git push origin
origin 是指git 地址的一个别名,可以使用
git remote add origin git地址 # 增加新的地址
git remote rename origin 新的名称 # 更改新的名称
git remote remove origin # 删除
来定义
标签操作
定义标签,可以代替版本号,做回退版本或查看记录的操作
git tag 标签名称 版本号
git tag
查看所有的标签
查看操作记录
git log
查看所有的提交记录
git log 版本号/标签名
查看该版本提交之前的所有提交记录
查看版本号记录
若我们希望通过版本号来查看提交记录时,我们可以使用以下命令来查看提交时都做了什么操作
git cat-file -p 版本号
上图中的 100644 指的是
- 100: 表示普通文件
- 644: 该文件的权限
- blob: 表示该文件的数据类型
共有 0 条评论