Git入门(一)——没有版本控制意识的程序员不是一个好的程序员

前言:无聊了快一个月了,不晓得怎么搞的代码也写不进去,就随便写点什么吧,昨晚看到群里在谈Github,所以我也起兴谈点GitHub。

一、Git与GitHub简介

1. Git

Git(global information tracker,全局信息跟踪器)是分布式版本控制系统,用来进行版本控制的。

2. 浅谈集中式与分布式

因为在下对集中式与分布式涉足的并不多,也可以说更多的是了解在理论方面,因此这里只是作为一个补充。

(1) 集中式版本控制系统:其版本库是集中存放在中央服务器的,而各自工作的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始做各自的工作,各自完成各自的工作任务后,再把自己的任务推送给中央服务器。典型的代表是SVN和CVS。CVS作为最早的开源而且免费的集中式版本控制系统,直到现在还有不少人在用。由于CVS自身设计的问题,会造成提交文件不完整,版本库莫名其妙损坏的情况。同样是开源而且免费的SVN修正了CVS的一些稳定性问题,是目前用得最多的集中式版本库控制系统。集中式版本控制系统的拓扑结构如下。

集中式版本控制系统最大的毛病就是必须联网才能工作,如果在局域网内还好,带宽够大,速度够快,可如果在互联网上,遇到网速慢的话,可能提交一个10M的文件就需要5分钟。

(2) 分布式版本控制系统:分布式版本控制系统没有”中央服务器”,每个人的电脑上都是一个完整的版本库,这样,工作的时候,就不需要联网了,因为版本库就在你自己的电脑上。当需要多个人协作的时候,比如说你在自己电脑上改了文件A,你的同事也在他的电脑上改了文件A,这时,你们俩之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。分布式版本控制系统的安全性较高,因为每个人电脑里都有完整的版本库,某一个人的电脑坏掉了不要紧,随便从其他人那里复制一个就可以了。而集中式版本控制系统的中央服务器要是出了问题,所有人都没法工作了。而且在实际使用分布式版本控制系统的时候,其实很少在两人之间的电脑上推送版本库的修改,因为可能你们俩不在一个局域网内,两台电脑互相访问不了,也可能你要推送版本库的电脑压根没有开机。因此,分布式版本控制系统通常也有一台充当“中央服务器”的电脑,但这个服务器的作用仅仅是用来方便“交换”大家的修改,没有它大家也一样工作,只是交换修改不方便而已。典型代表:git。其拓扑结构如下:

3. Git与GitHub的关系

GitHub开源项目的托管平台,而Git是一种使用命令行的工具,GitHub使Git使用更方便。

(1) GitHub DeskTop/Git客户端:https://desktop.github.com/

(2) GitHub: https://github.com/

二、GitHub的使用入门

1. 注册/登录

https://github.com/

略。

2. 创建仓库(create Repository)

一个项目如果被git控制了版本历史,在Github平台上就称为”仓库”(Repository)。

(1) 通过如下两种方式进入到Repository首页

或者

(2) 创建仓库

private一般指绑定了信用卡之类的。

(3) 在Repository下创建新的文件

下面对几个条目作简要说明

- commit:用来进行版本控制的。这里的“1 commit”指的是目前只有一个版本;

- branch:分支在后面会详细说明;

- releases:帮助开发者分发其软件给最终用户的功能。当然用户也可以自行选择下载指定的分支,但 Github 的作者可以明确定义发行分支。这意味着你可以快速下载最新的软件发行版本,之前发布的版本也更加容易访问到;

- contributor:项目的共享者,即协同开发的参与者。

-New pull request:在后面会较为详细的说明,这里主要介绍Create New File。当点击Create New File后(如果该按钮出现灰色不能点击则点击一下Repository名即可再点击)会出现编辑File的界面,然后往下拉,可以看到如下界面:

-1处:做版本留言,说明为什么要做这个版本;

-2处:留言的详细说明;

-3处:提交到哪个分支上,默认将版本做到master分支上。

当点击Commit new file之后再回到创建的Repository可以查看到变为”2 commit”了。

(4) 版本说明

以最新提交的File1为例作说明

然后看到如下的界面:

- 1处:说明了提交的时间和提交人

- 2处:parent 7b54ad5是43d38…..ce91版本的上一个版本。这个Parent就可以在多个版本中理清层次关系了。

- 3处:表示的意思是显示了1个文件被修改,比较原文件有1处增加,0处删除。

- 关于版本号:这里即为7b54ad5和43d38…..ce91,均为为40位的16进制数。前面那个可以展开,也是40位。在Git中的版本是一串数而不是1,2,3等。可以通过版本号来访问的相应的项目,当然这里的版本号也不一定需要全称,也可以取前几位来简称,只要能区别。结构如下:

https://github.com/用户名/仓库名/commit/版本号

比如说这里即为https://github.com/herdyouth/MyFirstRepository/commit/43d38

3. 删除Repository

进入到需要删除的Repository

然后点击Settings进入到如下界面,可以进行Rename,然后拉到最低边,就可以进行Delete操作了

时间: 2024-10-13 11:38:03

Git入门(一)——没有版本控制意识的程序员不是一个好的程序员的相关文章

Git入门(三)——没有版本控制意识的程序员不是一个好的程序员

之前所讲的都是"自娱自乐",自己管理自己的项目.本篇主要是Git入门的尾声,也是最为精华的一部分,即利用Git进行版本控制,进行"团队协作开发",也会介绍分支合并以及合并冲突时常见的处理方法. 五.团队协作流程 1. 基本流程 (1) 创建一个分支 当你在开发一个项目的时候,一般在同一时刻你会同时展开多个想法,其中一些比较成熟了,另一些还是很初级的.有了分支就可以很好地来进行管理了.当你在项目中创建一个分支的时候,你可能就是正在搭建一个可以尝试新想法的环境.你在新分

java web程序 上机考试做一个登陆注册程序

大二期末 java web.用到数据库,jdbc.myeclipse实现用户的注册,登陆 并且不能出现500错误,用户不能重复注册.当用户任意点击时也不能出现500错误! 这里.我只写注册成功的页面.这个不让用户重复注册 当时老师对我各种扣分.可后来.我问他的时候,他说不出来.我不是那个第一个提交作业的学生,可我的分数却比他低,我的功能比他多一个好吧 无所谓啊  谁叫我那么背时,再也不想问了.特别烦躁了 registerOk.jsp <body> <% String name=reque

单片机入门指南系列(十四) 点亮第一个LED的程序分析

本篇我们将分析上一篇所写的程序代码.未来学习单片机的大部分精力,我们也将放在程序代码的编写上.但是不用担心,我会非常详细的介绍每个程序的编写思路和各种注意事项等. 之前我们写的程序如下: #include <reg52.h> sbit LED = P1^0; void main() { LED = 0; while(1); } 头文件 第一行包含头文件,这个和C语言编写HelloWorld时的#include 一样.头文件reg52.h中定义了单片机的一些寄存器,如P0~P3等.至于什么是寄存

快速了解微信小程序的使用,一个根据小程序的框架开发的todos app

微信官方已经开放微信小程序的官方文档和开发者工具.前两天都是在看相关的新闻来了解小程序该如何开发,这两天官方的文档出来之后,赶紧翻看了几眼,重点了解了一下文档中框架与组件这两个部分,然后根据简易教程,做了一个常规的todo app.这个app基于微信小程序的平台,实现了todo app的常规功能,同时为了让它更接近实际的工作场景,也用到了loading与toast这两个组件来完成一些操作的交互与反馈.这个平台给我的直观感受是,技术层面,它跟vue有相似性,但是远没有vue强大:开发时候的思路,不

(转)快速了解微信小程序的使用,一个根据小程序的框架开发的todos app

微信官方已经开放微信小程序的官方文档和开发者工具.前两天都是在看相关的新闻来了解小程序该如何开发,这两天官方的文档出来之后,赶紧翻看了几眼,重点了解了一下文档中框架与组件这两个部分,然后根据简易教程,做了一个常规的todo app. 这个app基于微信小程序的平台,实现了todo app的常规功能,同时为了让它更接近实际的工作场景,也用到了loading与toast这两个组件来完成一些操作的交互与反馈. 这个平台给我的直观感受是,技术层面,它跟vue有相似性,但是远没有vue强大:开发时候的思路

微信小程序学习 动手撸一个校园网小程序

动手撸一个校园网微信小程序 高考完毕,想必广大学子和家长们都在忙着查询各所高校的信息,刚好上手微信小程序,当练手也当为自己的学校做点宣传,便当即撸了一个校园网微信小程序. 效果预览 源码地址:Github??求你的小星星- 准备工作 微信小程序开发者工具:腾讯开放了小程序个人开发平台,只需要一个微信号就可以成为小程序开发者了. 微信小程序设计指南:由于小程序是一个平台,所以平台上的开发者必须要遵守规范. ?easy-mock:使用easy-mock模拟后端数据,后面会简单介绍配置. 七牛云:使用

git入门(1.历史)

git入门(1.历史) git入门(2.基础) git入门(3.文件操作) git入门(4.提交与历史) git入门(5.分支) git入门(6.repo) 版本控制 版本控制是什么已不用在说了,就是记录我们对文件.目录或工程等的修改历史,方便查看更改历史,备份以便恢复以前的版本,多人协作... 一.原始版本控制 最原始的版本控制是纯手工的版本控制:修改文件,保存文件副本.有时候偷懒省事,保存副本时命名比较随意,时间长了就不知道哪个是新的,哪个是老的了,即使知道新旧,可能也不知道每个版本是什么内

【知乎】怎么成为一个优秀的程序员,而不是一个优秀的码农?

怎么成为一个优秀的程序员,而不是一个优秀的码农? 9 条评论 分享 默认排序按时间排序 98 个回答 3844赞同反对,不会显示你的姓名 萧井陌 微信公众号:炼瓜研究所 技术社区 - 3844 人赞同 优秀的程序员会告诉你打根基的重要性,会劝你在厚积薄发前要隐忍. 优秀的码农会告诉你学啥底层.啥啥啥一拖就好了,学了python还要啥自行车啊,数据结构排序函数二分搜索这不都内置了吗?工作中永远用不到,学算法有啥用啊?成为高手有很多种方法汇编是个屁啊? +++基础的分割线+++ 列举几个我认为比较重

DIY一个万能小程序

前言 不知道你是否和我一样曾有个这样的想法:自己写一个程序,让其它程序为我所控.有问题敢于提出的孩子就是好孩子. 为了不让它过于复杂,我们限定一下自己程序的功能: 它能够帮助我们打开一个程序,比如浏览器中蘑菇街的网页. 它可以帮助我们定时关机.比如开机60分钟后自动关机. 它可以帮助我们开机播放一个电影. 请饶了我吧,其实我当年认为的万能小程序是: 打开一个没有扩展名的程序,分析它的格式并为它修正扩展名.如果你曾经修复过磁盘,你或许见过你的文件被变成.bak.真是太纠结了. 它可以拍照或者录像并