一. Git的基本名词解释
1、什么是工作区, 暂存区, 版本库
工作区
git init
下的文件夹的所有目录及文件,但不包括.git目录下的文件
暂存区(stage or index)
git add
, 添加的文件或文件夹, 暂存区属于版本库存储的一块区域. 注意:暂存区的文件只属于该分之下的暂存,如果没有执行commit
操作, 则不允许切换分支.
版本库
版本库包含暂存区及分支, 当使用git commit
将暂存区的文件提交到仓库里, 暂存区的文件就会清空,生成一个 commit id
进入版本库中.
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,确定代码没有问题后再将新分支合并到主分支上。
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、提交四部曲
- 本地修改文件(工作区)
- Add增加文件(暂存区)
- Commit提交修改文件到本地版本库
- Push推送本地库的差异到远程库
3、几个库的概念
集中库(远端)
Fork私有库(远端)
本地库
集中库和fork库是自动同步的,通过对集中库进行fork操作,得到一个在远端的fork私有库,然后将fork私有库进行clone克隆操作,在本地得到一个本地库,我们通常在本地库对代码进行编辑修改,编辑修改完成后再进行添加,提交,推送等操作到远端fork私有库,一个阶段的功能任务完成后,我们就可以创建一个pull request合并申请,把远端fork私有库这一阶段的编辑修改功能代码合并到fork集中库
三. Git常用操作指令
1、分支名称
master
稳定分支
develop
不稳定分支(开发分支)
issue
或fixbug
BUG 分支
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工具。我的体验是确实强大,功能丰富,基本操作和高级操作都设计得非常流畅,适合初学者上手。
官方下载地址:https://www.sourcetreeapp.com/
TortoiseGit
对这只小乌龟估计没有开发人员会不认识,SVN的超广泛使用也使得这个超好用的Svn客户端成了几乎每个开发人员的桌面必备软件。小乌龟只提供Windows版本,提供中文版支持的,对于中国的开发者来说者绝对是福音。
官方下载地址:https://tortoisegit.org/download/
如果你觉得这篇文章对你有所帮助,那就顺便点个赞
吧,点赞收藏
不迷路~
黑芝麻哇,白芝麻发,黑芝麻白芝麻哇发哈!
前端哇发哈
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。