首页 存档 技术 查看内容

Github入门与实践

2018-3-30 13:00 |来自: 互联网 354 0

摘要: 作者:small2 原文:segmentfault.com/a/1190000004606816 (点击文末阅读原文即可前往) 听说好的程序员都在用github。 用github有一阵子了,因为不会用Git,所以一直是通过GUI客户端程序去同步代码的,这样明显 ...

作者:small2

原文:segmentfault.com/a/1190000004606816

(点击文末阅读原文即可前往)


听说好的程序员都在用github。

用github有一阵子了,因为不会用Git,所以一直是通过GUI客户端程序去同步代码的,这样明显很low。而且,好多地方都没搞清楚,比如,Issue用来干什么?Pull Request怎么使用?

拒绝GUI,必须命令行。

看了《Github入门与实践》一书,经过一番梳理和实践,这次我终于懂得用Git和Github了。

思维导图

Git

Git是什么?


Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.[译:Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。]

Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

Git可以帮助我们管理代码,它是一个分布式版本控制系统。它设计了仓库(版本库)这样一种管理机制;同时,不同于SVN,CVS集中式的版本控制理念,Git是分布式版本控制。

两者的区别可以阅读廖雪峰老师的文章:集中式vs分布式。

而且,Git是通过命令行操作的。

基本操作

这里只简单罗列几条命令,具体操作在下面通过Git创建本地仓库会介绍到。

  • git init:初始化仓库

  • git status:查看仓库状态

  • git add:向暂存区中添加文件

  • git commit:保存仓库的历史记录

  • git log:查看提交日志

  • git diff:查看更改前后的差别

  • git branch:显示分支一览表

  • git checkout -b:创建并切换分支

  • git checkout:切换分支

  • git merge:合并分支

  • git reset:回溯历史版本

  • git remote add:添加远程仓库

  • git push:推送至远程仓库

  • git clone:获取远程仓库


分支

在进行多个并行作业时,我们会用到分支。

master分支是Git默认创建的分支,它就像河流的主干,而我们根据需要,创建的一个个分支,就相当于河流分化出来的一个个小分流。

我们在分支上进行编程作业(例如,每个负责项目的一个模块开发),当完成之后,进行审核无误,再合并到主分支master上,这样就能合理高效地实现多人并行开发。

特性分支

特性分支,是集中实现单一特性(主题),除此之外不进行任何作业的分支。

在日常开发过程中,我们常常会创建数个特性分支,同时在保留一个随时可以发布软件的稳定分支。稳定分支的角色通常由master担当。

假设我们创建了一个feature-a分支,这一分支主要实现feature-a,除feature-a的实现之外不进行任何作业。即便在开发过程中发现了Bug,也需要再创建新的分支,在新分支中进行修正。

Github

Github是什么?

Github是一个网站。


一些开发者在使用Git以后,找不到好的Git托管网站,于是Tom Preston Werner 和 Chris Wanstrath 就开发了Github出来,提供Git仓库托管服务。

所以,在我看来,它们两者的关系就是:Git是一个系统,相当于一个工具,而Github就是基于这样一个系统的平台,让开发者更高效地使用Git去托管自己的代码。

如何使用Github?

因为Git是使用仓库进行版本控制的,所以我们在Github的操作也是围绕着仓库展开。

当我们想管理一个项目的代码时,我们就在Github上创建一个仓库,然后上传项目代码,就实现了代码托管。

所以,一般我们的开发流程是这样的:

  • 在本地通过Git建立一个仓库,我们称之为“本地仓库”,然后进行我们的编程工作。使用Git,可以帮助实现版本控制。

  • 在Github上建立一个仓库,我们称之为“远程仓库”,然后将本地仓库的内容推送到远程仓库,同步代码,这样就实现了托管功能。

或者,如果是先在Github上建立了仓库,设置好了项目,那么就将远程仓库的项目克隆到本地仓库,同理。

我个人的理解是,远程仓库操作Github;本地仓库操作Git。

本地仓库

创建初始化仓库

要使用Git进行版本管理,必须先初始化仓库。

  • 建立一个目录,并初始化仓库。


    如果初始化成功,执行了
    git init命令的目录下就会生成.git目录。这个.git目录里存着管理当前目录内容所需的仓库数据。我们将这个目录的内容成为“附属于该仓库的工作树”。


  • 查看仓库状态

    工作树和仓库在被操作过程中,状态会不断变化,所以需要经常用gti status查看当前状态。


提交版本更新

编辑完代码后,一个完整的提交流程应该是:git status-

声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

相关分类

返回顶部