一. Git的基本名词解释

1、什么是工作区, 暂存区, 版本库

工作区

git init下的文件夹的所有目录及文件,但不包括.git目录下的文件

暂存区(stage or index)

git add, 添加的文件或文件夹, 暂存区属于版本库存储的一块区域. 注意:暂存区的文件只属于该分之下的暂存,如果没有执行commit操作, 则不允许切换分支.

版本库

版本库包含暂存区及分支, 当使用git commit 将暂存区的文件提交到仓库里, 暂存区的文件就会清空,生成一个 commit id 进入版本库中.
image.png

2、基本操作概念名词

1) 克隆:clone

克隆远程仓库到本地

2) 拷贝:fork

拷贝远程集中库,生成一个远程私有库

3) 添加:add

把修改的文件提交到本地暂存区

4) 拉取:pull

将代码托管平台上的代码下载到本地代码仓库
git pull则是将远程主机的最新内容拉下来后直接合并,即:git pull = git fetch + git merge,这样可能会产生冲突,需要手动解决。

5) 提交:commit

提交暂存区内容到git代码库

6) 推送:push

将本地代码仓库的代码上传到代码托管平台

7) 获取:fetch

获取远程库到本地库
git fetch是将远程主机的最新内容拉到本地,用户在检查了以后决定是否合并到工作本机分支中。

8) 分支:create branch

创建分支

9) 代码合并请求:create pull request

请求对方(原项目)拉取(合并)自己的改动
【pull request合并申请简称PR】

利用git版本控制工具时,我们通常会从主分支拉出新分支进行开发,开发完成后创建pr(也就是pull request),让其他小伙伴帮忙review,确定代码没有问题后再将新分支合并到主分支上。

image.png

10) 合并:merge

将分支合并到当前分支

11) 贮藏:stash

当远程代码库有更新的时候,我们本地的代码又做了修改,需要上传推送的时候,应该如何做? 这时候要用到贮藏的功能,首先保留刚才本地修改的代码, 暂时封存起来本地刚才修改的代码,然后把git服务器上的代码pull到本地,最后应用贮藏区里面暂时封存的代码,最后再进行推送更新。

12) 标签:tag

tag是git版本库的一个标记,指向某个commit的指针。

tag主要用于发布版本的管理,一个版本发布之后,我们可以为git打上 v.1.0.1 v.1.0.2 ...这样的标签。

13) 切换分支:checkout

二. 使用git进行版本控制的操作流程

1、版本控制流程概述

第一步:克隆,fork远程源项目到自己的远程代码仓库中
第二步:拷贝,将自己的远程仓库clone到本地
第三步:新建并切换到新分支中,不新建就用master也可以,新建的话可以创建develop开发分支,并且切换到该分支进行开发
第四步:在本地修改代码
第五步:将本地的改动添加到暂存区( git add
第六步:将暂存区的改动提交到本地的版本库( git commit
第七步:将本地版本库的分支推送到远程服务器上对应的分支( git push

2、提交四部曲

  1. 本地修改文件(工作区)
  2. Add增加文件(暂存区)
  3. Commit提交修改文件到本地版本库
  4. Push推送本地库的差异到远程库

image.png

3、几个库的概念

image.png

集中库(远端)
Fork私有库(远端)
本地库

集中库和fork库是自动同步的,通过对集中库进行fork操作,得到一个在远端的fork私有库,然后将fork私有库进行clone克隆操作,在本地得到一个本地库,我们通常在本地库对代码进行编辑修改,编辑修改完成后再进行添加,提交,推送等操作到远端fork私有库,一个阶段的功能任务完成后,我们就可以创建一个pull request合并申请,把远端fork私有库这一阶段的编辑修改功能代码合并到fork集中库

三. Git常用操作指令

1、分支名称

master稳定分支

develop不稳定分支(开发分支)

issuefixbugBUG 分支

feature新功能分支

release预发布分支

2、本地操作

git init初始化

git add增加到暂存区

git commit -m提交到分支

git status查看状态

git diff查看不同

git diff HEAD -- file查看工作区和版本库里面最新版本的区别

git log查看日志

git log --graph查看分支合并图

git reflog查看用过的命令

git reset --hard <HEAD^|commitID>版本回退

git reset HEAD file可以把暂存区的修改撤销掉

git checkout -- file可以丢弃工作区的修改

git stash把当前工作现场 “储藏” 起来

git stash list查看储藏

git stash apply [stash@{x}]恢复储藏,stash@{x} 指定恢复

git stash drop删除储藏

git stash pop恢复并删除

3、远程操作

git clone克隆

git remote远程库

git pull拉取远程库到本地

git push推送本地到远程库

4、分支

git branch查看分支

git branch <name>创建分支

git checkout <name>切换分支

git checkout -b <name> [origin/name]创建并切换 (-b) 分支,[origin/name] 指定远程分支

git merge <name>合并指定分支到当前分支

git merge --no-ff -m "<message>" <branch>用普通模式合并,并且提交描述

git branch -d <name>删除分支,-D强制删除

git branch --set-upstream <name> <origin/name>指定本地分支与远程分支的链接

5、标签

git tag查看标签

git tag <name> [commitid]打一个新标签默认 HEAD,可以给历史提交打标签

git tag -a <name> -m <message>`-a指定标签名,-m指定标签说明,-s`私钥签名一个标签 (PGP) 必须有 gpg

git show <tagname>查看标签信息

git tag -d <name>删除标签

git push origin <tagname|--tags>推送 <标签|全部标签> 到远程

git push origin :refs/tags/<tagname>删除远程标签,先删除本地然后推送

6、别名

git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"

四. Git图形化工具介绍

使用git管理项目时难免会被git的各种命令搞得难受得一匹,所以我们需要有图形化管理工具来操作git,下面给大家推荐几款常用git图形化工具git GUI;

Source Tree

SourceTree是老牌的Git GUI管理工具了,也号称是最好用的Git GUI工具。我的体验是确实强大,功能丰富,基本操作和高级操作都设计得非常流畅,适合初学者上手。
image.png
官方下载地址:https://www.sourcetreeapp.com/

TortoiseGit

对这只小乌龟估计没有开发人员会不认识,SVN的超广泛使用也使得这个超好用的Svn客户端成了几乎每个开发人员的桌面必备软件。小乌龟只提供Windows版本,提供中文版支持的,对于中国的开发者来说者绝对是福音。

官方下载地址:https://tortoisegit.org/download/

如果你觉得这篇文章对你有所帮助,那就顺便点个赞吧,点赞收藏不迷路~

黑芝麻哇,白芝麻发,黑芝麻白芝麻哇发哈!

前端哇发哈


前端哇发哈
145 声望19 粉丝

黑芝麻哇,白芝麻发,黑芝麻白芝麻哇发哈!