Git和GitHub的基本操作

GIT版本控制系统

版本控制系统功能:

1.记录版本历史信息(记录每一次修改的记录)

2.方便团队之间相互协作开发

3.远程开发......

常用的版本控制系统

  • cvs/svn :集中式分布系统

  • git:分布式版本控制系统

1.GIT工作原理以及基本操作

  • 工作区:我们能看到的,并且用来写代码的区域
  • 暂存区:临时存储用的
  • 历史区:生成历史版本

工作区->暂存区->历史区

1.git的全局配置

第一次安装完成git后,我们在全局环境下配置信息:我是谁?

11.$ git config -l 查看配置信息 22.$ git config --global -l 查看全局配置信息 33.使用命令2查看有没有USER NAME ;USER EMAIL; 4 54.配置全局信息:用户名和邮箱 65.$ git config --global user.name 'theyhq' 76.$ git config --global user.email '1076883793@qq.com' 8完成配置 9配置完成后可再用命令2查看是否已含有USER NAME;USER EMAIL

2.创建仓库完成版本控制

创建本地git仓库

11.$git init 22.//->执行后会生成一个隐藏文件夹“.git”(这个文件夹千万不要删,因为暂存区和历史区还有其他的一些信息都在这里,删了就不是一个完整git仓库了。)

成功后会生成Initialize empty Git respository 生成了一个空仓库。

在本地编写完成代码后(在工作区),把一些文件提交到暂存区。

以下是将文件提交到暂存区的方法

11.$ git add 'xxx.xx' //该命令只提交某个文件,注意此处要该文件全称,即包含拓展名 22.$ git add . 3 43.$ git add -A //2或3将当前所有未存入暂存区的文件存入暂存区 5 64.$ git status //查看当前文件的状态:红色表明有文件在工作区未存入暂存区,绿色表明有文件在暂存区未 存入历史区,看不见则表示所有修改信息已经存入历史区。

接着是将暂存区文件提交到历史区

1.$ git commit -m'描述信息:本次提交内容的一个描述'   //比如$ git commit -m'第一次提交的版本'

提交完成后可以用以下命令查看历史版本信息(历史记录)

11.$ git log //查看历史记录 22.$ git reflog //查看所有历史记录(包括历史区回滚后)

注意,不论是将工作区文件提交到暂存区,还是暂存区文件提交到历史区,提交的文件都会在原区域保留一份一样的,git通过比对两个区域文件的不同才知道文件有什么改变。

总结:平时写代码时写完一部分就应该提交到暂存区,写完一整套功能后提交到历史区生成一个新版本。

2.回退到旧版本的方法

之前我们说了用

11.$ git log 232.$ git reflog //可以查看历史版本,其中commit:后面那串长的就叫做版本号

接着我们执行:

1.$ git reset --hard 版本号  //实际此处用版本号的前7位或者完整版本号都可以

即可回退到该版本号对应的版本。

若成功会返回HEAD is now+返回版本号的一部分。

GIT和GIT-HUB

GIT-HUB:https://www.github.com

一个网站(一个开源的源代码管理平台),用户注册后,可以在自己的仓库下创建仓库,用来管理项目的源代码(源代码是基于git传到仓库中的)

我们熟知的插件,类库,框架等都在这个平台上有托管,我们可以下载观看和研究源码等

1.Settings用户设置

在头像下拉处选择到Settings用户设置

1.Profile

里面记载了别人可以看到的你的种种信息

2.Account

可以修改自己的用户名,但该域名和许多其他设置将会丢失

3.Secuirity

可以修改自己的密码

4.Emails

可以增加或者删除邮箱等等,若未验证会有提示

5.其他功能等等...

2.创建仓库

在头像下拉处选择Your repositorise,进入后用绿色的NEW或头像旁边的+下拉 NEW repository都可。

//点击后有个Import a repository的蓝色超链接,功能是导入一个仓库。

new repositorise->填写信息->Create repository

  • public 公共仓库作为开源项目
  • private 私有仓库作为内部团队协作管理的项目

Settings->删除仓库Delete this repository

​ ->Collabrators 设置协作开发的成员 再Add collaborator即可添加团队协作成员。成员通过邮箱同意即 可。

进入某个仓库后

Code 可以查看历史版本信息和分支信息,即版本号和原文件等,能快速回退到此处。

3.把本地仓库信息提交到远程仓库

1.建立本地仓库和远程仓库的连接
11.$ git remote -v //查看本地仓库和哪些远程仓库保持连接 22.$ git remote add origin GIT仓库地址 //让本地仓库和远程仓库新建一个连接 其中origin是一个随 便起的连接名,可以改成自己想要的,不过一般都是这个名字 33.$ git remote rm origin //移除连接

其中仓库地址为:

特别注意!!!远端和本地的文件的传入传出等是依靠于本地的历史区!!!

所以在提交到远程仓库之前一定要按照之前的步骤将变化的文件同步到暂存区和历史区再提交!!!!!

此处省略了将文件同步到暂存区和历史区的步骤!!

每次提交到远程仓库之前最好先拉取

1.$ git pull origin master                  //从远程仓库中拉取 

因为如果有别人上传了文件到这个git仓库中,我们没有pull而直接push的话会出现错误。

未pull直接push冲突

之后提交到远程仓库(需要输入github的用户名和密码)

1.$ git push origin master                  //在弹出框输入GitHub的账号密码即可

特别地,可能会有特殊情况发生:

1.要求输入SSH 账号密码,这个额外的按照github的账号密码输入一次就可以了

2.直接在git窗口内要求输入账号密码,账号正常输入即可,但密码输入时屏幕上不会显示字符录入,因为是使用的暗文输入,直接输入完成后回车即可

隐文

2.更好的实现以上目的的命令(项目中用的命令):git clone

真实项目开发流程:

1.组长或负责人创建中央仓库.

2.小组成员基于

$ git clone 远程仓库git地址 别名:可以不设置默认是仓库名

这个命令行将远程仓库及默认内容克隆到本地一份

clone

利用该地址clong一份文件后,clone下来的文件夹默认就和远程仓库连接了,且自带了本地git仓库。

所以clone一行命令解决了三件事情:

  • 初始化了一个本地仓库"git init"

  • 和远程仓库进行了连接

  • 把远程仓库默认内容拉取到本地“git pull”

3.每个小组成员写完自己的程序后,再提交到历史区后通过“git pull/git push”将本地信息和远程仓库信息保持同步即可(可能涉及冲突的处理)

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

Git+GitHub入门

闲下来看了看Git的命令:一:Git是什么?Git是目前世界上最先进的分布式版本控制系统。二:SVN与Git的最主要的区别?SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服务器

手把手教你搭建集中式版本控制系统SVN服务器

大家好,我是IT共享者,人称皮皮。一、前言我们前段日子学过了分布式版本控制系统git,相信大家都领略到了它的强大,今天我们来说说集中式版本控制系统svn,跟分布式版本控制系统不同的是,集中式版本控制系统旨在用于多个人协同开发一个项目,而且它的版本控制系统都是存放在中央服务器上的,如果你需要使用就得从中央服务器上调用,它不像git,每个用户都可以有自己的版本

GitHub和SVN的区别

GitHub和SVN的区别之前用的版本控制系统是SVN,但是最近因为流行使用GitHub,这篇文章认识一下Git和SVN的区别。1)Git是分布式的,SVN不是: 这是git和其它非分布式的版本控制系统,例如SVN,CVS等,最核心的区别。好处是跟其他同事不会有太多的冲突,自己写的代码放在自己电脑上