git/GitHub

Git

是一个开源的分布式版本控制系统
GitHub
本质上是一个代码托管平台,它提供的是基于 Git 的代码托管服务

版本控制系统

最主要的任务是追踪文件的变更,无论是应用系统源代码、项目配置文件,还是项目过程的开发文档,甚至是网站界面图片、Logo,都可以且应该被版本控制系统所管理起来,以方便在项目的生命各周期能够追踪、查看到软件系统的变更和演进。
另一个重要的作用是方便开发者进行协同开发,使得项目中各开发者能够在本地完成开发而最终通过版本控制系统将各开发者的工作合并在一起进行管理

集中式版本控制系统

早期的版本控制系统大多是集中式(Centralized)版本控制系统。所谓集中式,即是此类系统都有一个单一的集中管理的服务器。在该服务器上保存着项目所有文件以及文件的历史版本,而各开发者可以通过连接到该服务器读取并下载到文件的最新版本,也可以检索文件的历史版本

分布式版本控制系统

相比较集中式的版本控制,目前业界最流行的版本控制系统是分布式(Distributed)版本控制系统,
其最大的特点是各开发者本地所复制的不仅仅是当前最新版本的文件,而是把代码仓库完整地从服务器上克隆了下来。
各开发者本地拥有代码仓库所有的文件以及文件历史和变更信息。这样即使服务器出现宕机,也不影响开发者本地开发,开发者也可以随时查看文件的各历史版本。甚至服务器出现故障导致数据丢失时,项目组也很容易根据开发者的本地代码库恢复出所有文件和文件的历史变更记录。

Git 的分布式版本控制

其一,在分布式版本控制系统中,克隆了代码库的各本地开发者拥有了服务器分发过来(Distributed)的完整的代码库副本,使得开发者们可以独立于主服务器之外进行开发任务,这和分布式计算概念中,各计算机独立进行计算任务的理念不谋而合。同时也符合分布式存储的理念:一个文件多份副本。
其二,各开发者在完成开发任务后又需要将自己本地修改后的代码库合并(Merge)到主服务器上。这也与分布式计算概念中最终需要将各计算机的计算结果合并起来的概念是相符的。

常用命令

查看本地代码库中所有文件ls -al
删除除.git之外的全部源文件rm -rf **.sh
断网之后尝试 git pull 同步代码
代码库中被删除的文件恢复回来,而且是在无任何网络连接、没有和服务器进行交互的情况下进行的恢复git reset --hard
查看 Git 目录结构 tree -L 1
查看 objects 目录结构 tree -L 2
查看提交历史git log

GitHub
一、新建仓库,设置本地与远程仓库间的账号与地址,并复制远程仓库
新建仓库,并获取ssh地址;
打开终端,进入本地仓库目录,执行 git clone [email protected]:adler00/blog.git 命令;
初次执行 ‘git clone’ 命令,会提示未设置公钥;
设置公钥及私钥,在终端中执行命令 ssh-keygen -t rsa -b 4096 -C "[email protected]";
进入系统家目录 ~/.ssh 目录打开id_rsa.pub cat id_rsa.pub ,完整拷贝至GitHub-setting-SSH and GPG keys中;
再次执行 git clone git@github…’,则将远程仓库拷贝到本地仓库内;

二、在本地仓库内执行新建文件,将变动操作添加到本地仓库,并上传至GitHub远程仓库
git add .’(注意空格!) 将所有变动添加到本地仓库内;
git commit -am’执行提交命令,并添加操作备注;
git push origin master将本地仓库提交至远程仓库,则添加完成;

猜你喜欢

转载自blog.csdn.net/qq_39643868/article/details/89030945