Git
一、Git概念:
Git是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小到大型的项目。
二、 什么是版本控制?
版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。
三、 为什么要使用版本控制?
软件开发中采用版本控制系统是个明智的选择。
有了它你就可以将某个文件回溯到之前的状态,甚至将整个项目都回退到过去某个时间点的状态。
就算你乱来一气把整个项目中的文件 改的改删的删,你也照样可以轻松恢复到原先的样子。
但额外增加的工作量却微乎其微。你可以比较文件的变化细节,查出最后是谁修改了哪个地方,从而找出导致怪异问题出现的原因,又是谁在何时报了某个功能缺陷等等。
四、版本控制系统的分类:
集中化的版本控制系统 SVN
集中化的版本控制系统诸如CVS,SVN以及Perforce等,都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。多年以来这已成为版本控制系统的标准做法,这种做法带来了许多好处现在每个人都可以在一定程度上看到项目中的其他人正在做些什么。而管理员也可以轻松掌控每个开发者的权限,并且管理一个集中化的版本控制系统;要远比在各个客户端上维护本地数据库来得轻松容易。
事分两面,有好有坏。这么做最显而易见的缺点是中央服务器的单点故障 。如果服务器宕机一小时,那么在这一小时内,谁都无法提交更新,也就无法协同工作。
分布式的版本控制系统
由于上面集中化版本控制系统的那些缺点,于是分布式版本控制系统面世了。
在这类系统中,像Git, BitKeeper等,客户端并不只提取最新版本的文件快照,而是把代码仓库完整地镜像下来。
更进一步,许多这类系统都可以制定和若干不同的远端代码仓库进行交互。这样,你就可以在同一个项目中分别和不同工作的人相互协作。
本地结构
初始化本地库
- 创建一个文件夹
- 打开Git 终端
Git Bash Here
在Git 中命令跟 Linux 是一样的
(1)查看 Git 安装版本 git --version
(2)清屏 clean
(3)设置签名
设置用户名和邮箱
$ git config --global user.name “此处输入用户名”
$ git config --global user.email “此处输入邮箱”
(4)本地仓库的初始化操作
$ git init
.git 目录是隐藏的:可以调出来
add和commit
1.先创建一个文件 例:first.txt(反正之前创建的文件夹里)
2. 将文件提交到暂存区
$ git add first.txt
3. 将暂存区的内容提交到本地库
$ git commit -m “这里是first.txt文件…” first.txt
注意事项
1.不放在本地仓库中的文件,git 是不进行管理
2. 即使放在本地仓库的文件,git 也不管理,必须通过 add commit 命令操作才可以将内容提交到本地库。
$ git status 查看的是工作区和暂存区的状态
$ git log 可以让我们查看提交的,显示从最近到最远的日志
reset命令 :前进或者后退历史版本
例如:git reset --hard 67c8975
- hard 参数
$ git reset --hard[索引]
本地库的指针移动的同时,重置暂存区,重置工作区 - mixed 参数
本地库的指针移动的同时,重置暂存区,但是工作区不动 - soft 参数
本地库的指针移动的时候,暂存区,工作区都不动
删除步骤
- 新建一个Test2.txt文件
- 将它add到暂存区
- 再通过commit 提交到本地库
- 删除工作区中的Test2.txt
rm Test.txt - 将删除操作同步到暂存区
git add Test.txt - 将删除操作同步到本地库
git commit -m “删除Test.txt” Test.txt
git diff [文件名] ——将工作区中的文件和暂存区中文件进行比较
查看分支 $ git branch -v
创建分支 $ git branch branch01
切换分支 $ git checkout branch01
合并分支 $ git merge branch01
增加别名 $ git remote add 名称 SSH的地址
本地库推送到远程库 $ git push origin mater(推送分支)
克隆操作 $ git clone 地址
删除本地分支 $ git branch -d 分支名
强制删本地分支 $ git branch -D 分支名
删除远程分支 $ git push origin --delete 分支名
删除分支具体步骤
如果你当前在test 分支上,要删除的分支就是test
删除本地分支:
- 先切换到别的分支下面 $ git checkout branch01
- 然后删除本地分支test $ git branch -d test
(如果删除不了,可以强制删除,使用 $ git branck -D test)
Git开发流程
- 在代码库更新到master,并且更新最新代码
$ git checkout master
$ git pull - 新建分支
$ git checkout -b 210701_add_function master - 在新的分支中增加功能代码或修改代码并提交修改
$ git add . //新增当前目录文件
$ git commit -a //提交全部 - 推送到远程库
$ git push origin 210701_add_function - Merge Request
- review
- 发布