Git服务搭建及github使用教程
从本文你可以获得以下知识:
1.GIT服务器搭建(CentOS6.5)
2.TortoiseGIT,MsysGIT工具的使用
3.GitHub的使用
Git 服务搭建
GIT简介
Git 是一个开源的分布式版本控制系统,可以有效高速处理非常大的项目版本管理。Git 是Linux之父Linux Torvlds 为管理linux内核而开发的一个开发源码的版本控制软件,目前也是用的比较火。
GITLAB简介
GitLab 是利用 Ruby on Rails 一个开源的版本管理系统,实现一个自托管的Git 项目仓库,通过Web 界面进行访问公开或者私人项目。它和Github(全球最大的开源或私人代码托管平台)的功能很像,能浏览源码,管理缺陷和注释,可以浏览文件历史库,可以使用Wall程序聊天交流。提供代码片段收集功能和实现代码复用,便于日后查找。
工作原理
1.Git在本地磁盘保存着当前项目的历史更新,处理速度很快。
2.浏览项目历史更新摘要,Git直接从本地数据库读取显示。
3.查看版本差异时,Git进行差异运算,而不需要远程服务器。
4.Git可以脱机工作,可以频繁提交和更新代码,有网时再上传。
文件状态
文件在Git内有三种状态
已提交(committed)
已修改(modified)
已暂存(staged)
如果是通过git clone 那么其中 .git 就是GIT目录
如果是通过git clone –bare 那么新建的目录本身就是GIT目录
GIT目录用来保存元数据和对象数据库
每次克隆镜像仓库都会从这个目录里面拷贝数据
工作流程:
1.从仓库取出某版本的目录称为工作目录
2.在工作目录进行修改和编辑,然后进行快照保存到暂存区域
3.提交更新,将暂存区域的文件转到Git目录当中
Git 常用命令
- git init here #创建本地仓库 .git文件里存储了版本信息和标记
- git remote add origin git@github.com:demonxian3/hellowrold.git #关联本地和远程仓库
- git add #从本地仓库增加,结果会保存到本机缓存里
- git commit –m “注释” #提交本机缓存的内容到本机HEAD里面
- git push origin master #把本地仓库提交到远程仓库 origin代表关联的远程仓库
- git pull origin master #从远程把新变化拉下来
- git status #查看git状态
- git add –A #提交全部修改
- git config –global user.name “xxx” #配置用户名,上传到远程仓库的用户信息
- git config –global user.email “xxx” #配置用户邮箱
- git config –list #查看配置列表
- git rm xxx #从本地仓库中删除指定文件
- git rm –r xxx #从本地仓库中删除指定目录
- git pull --rebase #与远程同步(拉数据)
- git log #查看历史提交版本
- git reset --hard 8c3a7254747d262f547 #版本回退,hard值从log里看
- 使用.gitignore文件忽略指定的内容
下面开始搭建GIT服务器(实验采用CentOS6.5)
1在服务端上搭建git服务,IP地址:192.168.1.112
- yum –y install git #需要ssh支持,某些发行版需要安装git-core 默认版本是1.8.3,新版本可以参考后面的git源码安装
- useradd –m git #创建服务用户
- echo git: | chpasswd #设置git 密码
- mkdir /project #本地仓库名
- chmod –R /project
- chown git:git –R /project
- su git
- cd /project
- mkdir project.git #创建git测试目录及文件
- cd project.git
- git --bare init #初始化仓库
2.在客户端初始化测试,将服务端的project项目git clone下来
- mkdir git && cd git #创建测试目录
- git clone git@192.168.1.112:/project/project.git #从远程仓库拷贝到测试目录
可以看到测试目录里把远程目录的project.git弄下来了
###############下面是个标准的代码提交过程###################
客户端模拟开发更新,提交
- cd project && echo “This is test” > .html #模拟测试内容
- git add . #添加到暂存缓区
- git commit –m “first” #提交到本地仓库,会输出提示信息
- git remote add origin git@192.168.1.112:/project/project.git #确认本地和远程是否关联
- git push origin master #把本地代码上传到远程代码
设置个人用户信息
- git config –global user.name “demon.demon”
- git config –global user.email demon@demon.cn
Git 工具使用
windows系统使用git常用的两个用具如下
https://git-for-windows.github.io/ #msysgit下载地址
https://tortoisegit.org/download/ #TortoriseGIT下载地址
第一个msysgit可以单独使用,第二个工具tortoisegit需要结合第一个使用
msysgit工具
在git bash 可以在windows下像linux那样运行git 命令
右键 Git GUI Here
这里我填写的是自己搭建的git服务器,你们可以填写github或者其他远程地址
从这里可以看出git需要建立在openssh上的,所以确保有ssh服务在服务器上
然后就可以把远程仓库的代码git下来了
同时会弹出下面的GUI管理界面,Checkout一下
模拟一下开发更新修改
然后在GUI里头点RESCAN重新扫描,可以扫到新加的内容
存储到暂存区域,如下就会跑到绿色下面的框框去了
Git Bash设置一下个人信息,然后点击签名
提交到本地仓库
提交到远程仓库
小乌龟TortoiseGIT工具
创建一个目录test,在目录下面右键Git clone,同样这里就以本地git服务器为例子
选择是,保存秘钥输入一下GIT用户的密码123456既可下载代码下来
添加一个5.html后,右键选择ADD,添加到暂存区域
右键点击Git Commit -> “master”后,输入message既可提交到本地仓库
如果要提交到远程仓库点击上面界面的push按钮既可
更多的教程可以参考http://www.yiibai.com/git/ Git的使用帮助
GitHub的使用
事实上,GIT服务器并不需要我们搭建,因为使用github就可以满足我们的需求
1.首先在github上面注册一个账号,这个就不演示了吧。
2.生成本地秘钥 ssh-keygen
3.导入秘钥到官方
4.然后把本地公钥复制进去既可,如果不知道本地公钥是什么可以到下面的目录查看
- cd ~/.ssh/ && cat id_rsa.pub #就可以看到公钥了
添加后过一会发个邮件给你
5.添加成功后测试登录 ssh –T git@github.com
6.创建本地仓库
回到主页 https://github.com/ ,点击New repository
第一次创建需要邮箱验证的
7.验证好后,填写创建信息
8.然后点击创建,出现下面的界面点ssh,因为我们前面使用的是ssh秘钥认证
9.下面开始在本地创建一个新的仓库与gihub仓库连接,也就是照上图create a new repository 打就可以了
- mkdir git && cd git
- echo "# IPhelper" >> README.md
- git init
- git add README.md
- git commit -m "first commit"
- git remote add origin git@github.com:demonxian3/IPhelper.git
- git push -u origin master
当你看到下面的界面表示本地仓库的创建和连接成功
到github页面上点击your profile
可以看见多出了一个仓库
10.配置一下用户信息
- git config --global user.name "demon.x"
- git config --global user.email demon@demonx.cn
11.下面模拟测试同步
- echo hello man > .html #新增内容
- git add .html #缓存添加
- git commit -m "add a html" #本地提交
- git push -u origin master #远程提交(需要验证)
- git log #查看提交版本号
- git pull --rebase #与远程同步(拉数据)
- git reset --hard 8c3a7254747d262f547dcb3f4623fd12dc235e0c #版本回退,hard值从log里看
Git源码安装
之前使用yum命令安装,版本比较低,下面是通过源码安装Git
git源码下载地址,可以手动下载下来在上传到服务器上面
https://github.com/git/git/releases
https://www.kernel.org/pub/software/scm/git/
1 移除旧版本git,将旧版本先卸载
- git --version ##查看自带的版本
yum remove git ##移除原来的版本
2 安装所需软件包
- yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc-c++ perl-ExtUtils-MakeMaker
3 将源码包下载下来
- cd /usr/src && wget https://www.kernel.org/pub/software/scm/git/git-2.7.3.tar.gz
4 解压
- tar xf git-2.7..tar.gz && cd git-2.7.
5 配置编译安装到/usr/git目录下面
- make configure
- ./configure --prefix=/usr/git #指定安装目录
- make profix=/usr/git -j 4 && make install #四线程编译及安装
6 添加环境变量
- echo "export PATH=$PATH:/usr/git/bin" >> /etc/profile
- source /etc/profile
7 检查版本
- git --version
8 其他git命令用法参考
https://www.cnblogs.com/demonxian3/p/7655266.html
转载请指明出处http://www.cnblogs.com/demonxian3/p/6922004.html
Git服务搭建及github使用教程的更多相关文章
- git服务搭建以及本地连接
服务器系统:centos6.5 本地系统:Mac 10.11 注意事项:本地git和服务器版本最好一样,centos上面的yum install git版本是1.7的,需要手动在下载,并手动编译 下载 ...
- 如何把项目通过git上传之github完整教程
作为一个有追求的程序员,需要撸点自己的开源项目,虽然我现在只是在学着造轮子,但这并不影响我成为大神的心.Github是基于git实现的代码托管,很多程序员在上面托管自己的开源项目,我使用Github也 ...
- winodws系统搭建git服务--Tomcat--jdk配置
一.http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 下载jdk程序: 1.下载 ...
- gogs搭建git服务教程
使用gogs搭建自己的git服务!!! 一.GIT服务器搭建方式 上一节课我们讲过GIT是一个分布式版本管理系统,既然是分布那么必定会涉及远程通信,那么GIT是采用什么协议进行远程通信的呢? git支 ...
- Windows平台搭建Git服务教程详解
引言 软件企业的核心就是代码,如何确保代码的安全?如何在团队开发中协同工作?为解决这些问题,我们需要采用相应的管理工具来满足管理的需求.探长从最初的VSS.SVN.TFS到现在的Git存储一路走来,感 ...
- git 入门教程之 git 私服搭建教程
git 私服搭建教程 前几节我们的远程仓库使用的是 github 网站,托管项目大多是公开的,如果不想让任何人都能看到就需要收费,而且 github 网站毕竟在国外,访问速度太慢,基于上述两点原因,我 ...
- GitHub+Hexo 搭建个人网站详细教程
原文链接 GitHub+Hexo 搭建个人网站详细教程 前言: 随着互联网浪潮的翻腾,国内外涌现出越来越多优秀的社交网站让用户分享信息更加便捷.然后,如果你是一个不甘寂寞的程序猿(媛),是否也想要搭建 ...
- git github 使用教程
参考文章:文章地址: http://wuyuans.com/2012/05/github-simple-tutorial/ github是一个基于git的代码托管平台,付费用户可以建私人仓库,我们一般 ...
- Docker+Gogs搭建个人Git服务
欢迎 经常使用Github的我,Github它功能强大,操作简单,不用FQ,所以大家会使用Github进行代码托管,但是,Github的私仓收费的,而且对于普通个人用户来说,价格也不便宜.很多人搭建自 ...
随机推荐
- spring boot + Thymeleaf开发web项目
"Spring boot非常适合Web应用程序开发.您可以轻松创建自包含的HTTP应用.web服务器采用嵌入式Tomcat,或者Jetty等.大多数情况下Web应用程序将使用 spring- ...
- chown 命令详解
chown 作用:改变某个文件或目录的所有者和所属的组, 该命令可以向某个用户授权,使该用户编程指定文件的所有者或者改变文件的所属组, 用户可以是用户或者是用户ID, 用户组可以是组名或者租ID, ...
- asp.net core 2.0+sqlsugar搭建个人网站系列(0)
一些废话 马上就要过年了,回顾这一年最大的收获就是技术有了很大的提升,其他的方面没有什么改变,现在还是单身小屌丝一枚. 这一年来学习的主要重点就是asp.net core,中间也使用 core+EF做 ...
- vuejs实现本地数据的筛选分页
今天项目需要一份根据本地数据的筛选分页功能,好吧,本来以为很简单,网上搜了搜全是ajax获取的数据,这不符合要求啊,修改起来太费力气,还不如我自己去写,不多说直接上代码 效果图: 项目需要:点击左侧进 ...
- VOOC还真算是OPPO的核心技术
经常电视看到OPPO打广告说它的VOOC,觉得好奇怪,就一个手机充电讲个不完,尽是骗3.4线城市的人,不过今天研究了一下,还VOOC真算是它的核心技术了. 现在选手机,电池和充电速度是非常重要的,首先 ...
- @NotEmpty、@NotBlank、@NotNull的区别
@NotEmpty 用在集合类上面 @NotBlank 用在String上面 @NotNull 用在基本类型上 只有简单的结果,但是再更具体一点的内容就搜不到了,所以去看了看源码,发现了如下的注释 ...
- 关于java字节流的read()方法返回值为int的思考
我们都知道java中io操作分为字节流和字符流,对于字节流,顾名思义是按字节的方式读取数据,所以我们常用字节流来读取二进制流(如图片,音乐 等文件).问题是为什么字节流中定义的read()方法返回值为 ...
- 使用图片地图减少HTTP请求数量
前言 最近在看<高性能网站建设>,记录一下所学. 现在很多网站都是图片形式的导航,点击图片跳转到对应的链接.如果导航项目很多的话,图片的数量就会很多,每需要加载一张图片就会多一个HTTP请 ...
- 为Python添加中文关键字
狗屎咖啡 2 个月前 原址: https://zhuanlan.zhihu.com/p/31159526 swizl/cnpython 1. 大部分语法,可以按下面方法加同义的中文token第1步. ...
- 最优化算法:BFGS算法全称和L-BFGS算法全称
在最优化算法研究中按时间先后顺序出现了许多算法包括如下几种,这里介绍下他们的全称和英文名称: 1.最速下降法(Gradient descent) 2.牛顿法(Newton method) 3. 共轭梯 ...