概述
git的学习之旅
什么是git
Git是目前世界上最先进的分布式版本控制系统。
-
作者:Linus Torvalds
-
目的:最初为了解决linux系统的维护需要频繁的打补丁和保存归档(很多时间都花在打补丁的过程上了),git应运而生
-
由来:linux 内核有着为数众多的参与者,绝大多数的 Linux 内核维护工作都花在了提交补丁和保存归档的繁琐事务上(1991-2002年间),到了02年,项目组启用了BitKeeper分布式版本控制系统来管理和维护代码。 到了2005年开发BitKeeper的商业公司对其进行收费,Linus Torvalds一气之下,花两周左右,创造了Git。Git是免费、开源的,最初Git是为辅助 Linux 内核开发的,来替代 BitKeeper!
Git基本理论(重要)
三个区域
Git本地有三个工作区域:工作目录(Working Directory)、暂存区(Stage/Index)、资源库(Repository或Git Directory)。如果在加上远程的git仓库(Remote Directory)就可以分为四个工作区域。文件在这四个区域之间的转换关系如下:
- Workspace:工作区,就是你平时存放项目代码的地方
- Index / Stage:暂存区,用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息
- Repository:仓库区(或本地仓库),就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中HEAD指向最新放入仓库的版本
- Remote:远程仓库,托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交换
本地的三个区域确切的说应该是git仓库中HEAD指向的版本:
- Directory:使用Git管理的一个目录,也就是一个仓库,包含我们的工作空间和Git的管理空间。
- WorkSpace:需要通过Git进行版本控制的目录和文件,这些目录和文件组成了工作空间。
- .git:存放Git管理信息的目录,初始化仓库的时候自动创建。
- Index/Stage:暂存区,或者叫待提交更新区,在提交进入repo之前,我们可以把所有的更新放在暂存区。
- Local Repo:本地仓库,一个存放在本地的版本库;HEAD会只是当前的开发分支(branch)。
- Stash:隐藏,是一个工作状态保存栈,用于保存/恢复WorkSpace中的临时状态。
工作流程
git的工作流程一般是这样的:
1、在工作目录中添加、修改文件;
2、将需要进行版本管理的文件放入暂存区域;
3、将暂存区域的文件提交到git仓库。
因此,git管理的文件有三种状态:已修改(modified),已暂存(staged),已提交(committed)
为什么是git
说到优势,那么自然是相对与SVN而言的
- **版本库本地化,支持离线提交,相对独立不影响协同开发。**每个开发者都拥有自己的版本控制库,在自己的版本库上可以任意的执行提交代码、创建分支等行为。例如,开发者认为自己提交的代码有问题?没关系,因为版本库是自己的,回滚历史、反复提交、归并分支并不会影响到其他开发者。
- **更少的“仓库污染”。**git对于每个工程只会产生一个.git目录,这个工程所有的版本控制信息都在这个目录中,不会像SVN那样在每个目录下都产生.svn目录。
- **把内容按元数据方式存储,完整克隆版本库。**所有版本信息位于.git目录中,它是处于你的机器上的一个克隆版的版本库,它拥有中心版本库上所有的东西,例如标签、分支、版本记录等。
- **支持快速切换分支方便合并,比较合并性能好。**在同一目录下即可切换不同的分支,方便合并,且合并文件速度比SVN快。
- **分布式版本库,无单点故障,内容完整性好。**内容存储使用的是SHA-1哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。
如何使用
前置知识:
常用的Linux命令:
平时一定要多使用这些基础的命令!
1)、cd : 改变目录。
2)、cd . . 回退到上一个目录,直接cd进入默认目录
3)、pwd : 显示当前所在的目录路径。
4)、ls(ll): 都是列出当前目录中的所有文件,只不过ll(两个ll)列出的内容更为详细。
5)、touch : 新建一个文件 如 touch index.js 就会在当前目录下新建一个index.js文件。
6)、rm: 删除一个文件, rm index.js 就会把index.js文件删除。
7)、mkdir: 新建一个目录,就是新建一个文件夹。
8)、rm -r : 删除一个文件夹, rm -r src 删除src目录
rm -rf / 切勿在Linux中尝试!删除电脑中全部文件!
9)、mv 移动文件, mv index.html src index.html 是我们要移动的文件, src 是目标文件夹,当然, 这样写,必须保证文件和目标文件夹在同一目录下。
10)、reset 重新初始化终端/清屏。
11)、clear 清屏。
12)、history 查看命令历史。
13)、help 帮助。
14)、exit 退出。
15)、#表示注释
下载以及安装
官网下载太慢,使用淘宝镜像下载:http://npm.taobao.org/mirrors/git-for-windows/
安装无脑下一步即可!
安装完毕后发现右键会有
点击git bash here
配置用户名(重要)
git config --global user.name "zyq" #名称
git config --global user.email "854296521@qq.com" #邮箱
查看是否配置成功
gitee远程仓库
github 是有墙的,比较慢,在国内的话,我们一般使用 gitee ,公司中有时候会搭建自己的gitlab服务器(理解为私有仓库)
1、注册登录码云,完善个人信息
2、设置本机绑定SSH公钥,实现免密码登录!(免密码登录,这一步挺重要的,码云是远程仓库,我们是平时工作在本地仓库!)
# 进入 C:UsersAdministrator.ssh 目录# 生成公钥ssh-keygen
3、将公钥信息public key 添加到码云账户中即可!
4、使用码云创建一个自己的仓库!
许可证:开源是否可以随意转载,开源但是不能商业使用,不能转载,… 限制!
不用输密码就可以将远程项目克隆到本地!
此时test文件夹就是本地仓库了,而且和远程仓库是同步的 add commit push 代码也不会发生冲突.
idea项目关联GItee远程仓库(方法一,推荐)
- 创建远程代码仓库
重要!!!!不要勾选初始化
-
创建idea项目 ,并将当前项目的文件夹 设置为本地仓库
-
设置远程仓库地址
把复制的仓库地址填入以下位置
- 提交代码到远程仓库
点击提交即可!!
idea项目关联GItee远程仓库(万能方法)
- 创建一个gitee远程仓库
如上,第4步、使用码云创建一个自己的仓库!
- 到本地新建文件夹 git clone 仓库的所有东西 到本地
克隆成功
- 创建idea项目
- 将克隆到本地仓库的文件复制到新建的idea项目(重要)
- 再次进入idea查看项目发现被初始化
到此已经把idea项目和远程仓库建立起了连接 主要是因为隐藏文件.git里有远程仓库的指向
- 更改文件后,打开idea 控制台的 terminal输入 git add . (自行百度忽略模板.gitignore:就是不上传到远程仓库的文件)
- git commit -m “描述” 提交代码到暂存区
- git push [分支] [主分支] 中括号中的分支和主分支可以不写
push到远程仓库后,可以 发现远程仓库的变化
6、7、8 三步可以一直循环,直到项目开发完毕!!
最后
以上就是潇洒彩虹为你收集整理的git的使用git的学习之旅的全部内容,希望文章能够帮你解决git的使用git的学习之旅所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复