前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布

Git

作者头像
名字是乱打的
发布2021-12-23 17:57:48
4600
发布2021-12-23 17:57:48
举报
文章被收录于专栏:软件工程
1,Git和SVN都是版本控制工具,那么他们得区别是什么呢?
  • 1 ). Svn 特点 SVN是集中式版本控制系统版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服务器集中式版本控制系统是必须联网才能工作,如果在局域网还可以,带宽够大,速度够快,如果在互联网下,如果网速慢的话,就郁闷了。 下图就是标准的集中式版本控制工具管理方式:

中央服务器作为一个版本控制中心,用户可以上传和下载最新版本进行迭代

优点:集中管理方式在一定程度上看到其他开发人员在干什么,而管理员也可以很轻松掌握每个人的开发权限。

集中式版本控制工具缺点很明显:

  • 服务器单点故障
  • 容错性差 Subversion原理上只关心文件内容的具体差异。每次记录有哪些文件作了更新,以及都更新了哪些行的什么内容。

2 ).git特点

Git是分布式版本控制系统;那么它就没有中央服务器的,每个人的电脑就是一个完整的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的电脑上。既然每个人的电脑都有一个完整的版本库,那多个人如何协作呢?比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。

分布式版本控制工具管理方式

从两者得图就可以看出最主要得区别了

svn必须有远程仓库服务器,而且只能通过远程仓库服务器作为中间站(即使是自己使用).

git得话,我们自己本地有自己得git仓库作为自己得版本控制,如果需要与他们建立共同得版本控制,也可以把自己得仓库同步到共享仓库里,他人可以从共享仓库克隆最新版本.

3 git工作流程一般工作流程如下:

1,从远程仓库中克隆Git资源作为本地仓库。

2,从本地仓库中checkout代码然后进行代码修改

3,在提交前先将代码提交到暂存区。

4,提交修改。提交到本地仓库。本地仓库中保存修改的各个历史版本。

5,在修改完成后,需要和团队成员共享代码时,可以将代码push到远程仓库。

下图展示了Git的工作流程:

git常用命令流程

4. Git的安装

git官网自行下载.默认下一步下一步..安装就好

5.Git下载好了后

git安装完毕后右键菜单就多了俩选项,用来两方式操作git

  • GUI可视化控制面板,可以创建和打开本地仓库,也可以克隆一个本地仓库
  • git bash git命令行方式 这里看了别人用户工具挺好的,所以并不推荐用原生的,这里推荐大家用一下小乌龟TortoiseGit(找不到安装包和语言包的可以私信给我)

安装完毕右键又多了几个工具

6.工作区和暂存区

Git和其他版本控制系统如SVN的一个不同之处就是有暂存区的概念。

什么是工作区(Working Directory)?

工作区就是你在电脑里能看到的目录,比如我的reporstory文件夹就是一个工作区。

Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。

如下图所示:我们把文件往Git版本库里添加的时候,是分两步执行的:

第一步是用git add把文件添加进去,实际上就是把文件修改添加到暂存区;

第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。因为我们创建Git版本库时,Git自动为我们创建了唯一一个master分支,所以,现在,git commit就是往master分支上提交更改。

你可以简单理解为,需要提交的文件修改通通放到暂存区,然后,一次性提交暂存区的所有修改。

7.忽略不需要提交到git的文件

我们可以用小乌龟右键添加忽略文件,也可以用语法规范去约束.

忽略文件语法规范

代码语言:javascript
复制
空行或是以 # 开头的行即注释行将被忽略。
可以在前面添加正斜杠 / 来避免递归,下面的例子中可以很明白的看出来与下一条的区别。
可以在后面添加正斜杠 / 来忽略文件夹,例如 build/ 即忽略build文件夹。
可以使用 ! 来否定忽略,即比如在前面用了 *.apk ,然后使用 !a.apk ,则这个a.apk不会被忽略。
* 用来匹配零个或多个字符,如 *.[oa] 忽略所有以".o"或".a"结尾, *~ 忽略所有以 ~ 结尾的文件(这种文件通常被许多编辑器标记为临时文件); [] 用来匹配括号内的任一字符,如 [abc] ,也可以在括号内加连接符,如 [0-9] 匹配0至9的数; ? 用来匹配单个字符。 
看了这么多,还是应该来个栗子:
# 忽略 .a 文件
*.a
# 但否定忽略 lib.a, 尽管已经在前面忽略了 .a 文件
!lib.a
# 仅在当前目录下忽略 TODO 文件, 但不包括子目录下的 subdir/TODO
/TODO
# 忽略 build/ 文件夹下的所有文件
build/
# 忽略 doc/notes.txt, 不包括 doc/server/arch.txt
doc/*.txt
# 忽略所有的 .pdf 文件 在 doc/ directory 下的
doc/**/*.pdf

exc1 Git命令基本操作

菜鸟教程的git基本操作命令

exc1 Git命令基本操作

菜鸟教程的Git 分支管理操作命令

8.关于git推送版本到远程仓库,实现云存储以及云版本管理

我这里一般用的是gitee,主要是相中了网速快...(没钱开外网进github...太慢了)

根据我们之前的流程图来看,其实就是把本地已提交的代码push到远程仓库.

具体可有看看https://cloud.tencent.com/developer/article/1923113

参考: https://www.runoob.com/git/git-tutorial.html https://www.cnblogs.com/Juning/p/12192111.html

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/10/28 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1,Git和SVN都是版本控制工具,那么他们得区别是什么呢?
  • 3 git工作流程一般工作流程如下:
    • 4. Git的安装
      • 5.Git下载好了后
        • 6.工作区和暂存区
          • 7.忽略不需要提交到git的文件
          • exc1 Git命令基本操作
          • exc1 Git命令基本操作
            • 8.关于git推送版本到远程仓库,实现云存储以及云版本管理
            相关产品与服务
            对象存储
            对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档