Git
Git是分布式版本控制工具,SVN是集中式版本控制,有单点故障的问题
GitHub是Git的代码托管中心,类似的国内有码云,是远程维护库
Git的优势
大部分操作在本地完成,不需要联网
完整性有保证
尽可能添加数据而不是删除或修改数据
分支操作非常流畅
与linux命令全面兼容

基本操作
1.查看工作区,暂存区状态
    git status
2.添加操作,将新建或修改添加到暂存区
    git add [file name]
3.提交操作,将暂存区的内容提交到本地库
    git commit -m "commit message" [file name]
4.查看历史操作记录
    git log全显示,翻页方式和vim一样
    git log --pretty=oneline 每条日志以一行显示
    git log --oneline
    git reflog出现的head{移动到当前版本数}
5.操作版本,回到哪一个版本。
    git reset. --hard 9a9ebd6
    git reset --hard HEAD^根据head指针回到行
    git reset --hard HEAD^^^回退三行
    git reset --hard HEAD~3回退n步

    相比来说 git reset --hard 9a9ebd6最好用
6.查看文档
    git --help reset

7.删除文件并找回
    删除:git rm filename
    找回:git reset --hard[指针位置]
    找回的前提是,删除前,文件存在时的状态已经提交到本地库
    删除操作已经提交到本地库:指针位置指向历史记录
    删除操作尚未提交到本地库:指针位置使用HEAD
8.工作区和暂存区的文件比较差异
    git diff apple.txt
    git diff HEAD apple.txt
    不带文件名会比较多个文件
9.分支的好处
    同时并行推进多个功能开发,提高开发效率
    各分支在开发过程中,如果某个功能开发失败,不会对其他分支有任何影响
10.查看分支
    git branch -v
11.创建分支
    git branch [分支名]
12.切换到某个分支
    git checkout [分支名]
    git add filename分支增加修改文件和上面的一样
    git commit -m "说明..." [分支名]
13.合并分支
    git merge [被合并的分支名]
14.解决冲突
    第一步:编辑冲突文件,删除特殊符号
    第二步:把文件修改到满意的程度,保存退出
    第三步:git add [文件名]
    第四步:git commit -m "日志说名..."
    注意:第四步后面不能跟文件名

git基本原理
    git底层采用哈希SHA-1算法

git远程操作

1.查看远程库
   git remote -v
2.新建远程库别名
   git remote add [远程库别名] https://github.com/帐号/远程库名.git
3.推送分支到远程库
   git push [远程库别名] [分支名]  #必须是创建远程库的人或邀请的团队成员
4.克隆远程库
   git clone https://github.com/帐号/远程库名.git
5.抓取远程库的修改到本地库
  git fetch [远程库别名 [分支名]]
6.接着5的操作查看本地库抓取的结果
   git checkout '[远程库别名/[分支名]]'
   cat filename
7.切换回去
   git checkout [分支名]
8.将抓取下来的修改和本地库合并
   git merge [远程库别名/分支名]
9.pull=fetch+merge
   git pull [远程库别名/分支名]

10.解决冲突
   如果不是基于GitHub远程库的最新版所做的修改,不能推送,必须先拉取
   拉取下来后如果进入冲突状态,则按照"分支冲突解决"操作即可

Git工作流
   1.集中式工作流(类似svn)
   2.GitFlow工作流(最常用)
   3.forking工作流(跨团队操作常用)

Gitlab服务器搭建过程
  1.官网网址
  首页:https://about.gitlab.com/
  安装说明:https://about.gitlab.com/installation/
  2.安装命令摘录
  yum install -y curl policycoreutils-python openssh-server cronie
  lokkit -s http -ssh
  yum install postfix
  server postfix start
  chkconfig postfix on
  curls https://packages.gitlab.com/install/repositories/gitlab-ee/script.rpm.sh | sudo bash
  EXTERNAL_URL="http://gitlab.example.com" yum -y install gitlab-ee
  yum安装 gitlab-ee(或社区版ce)时,需要联网下载几百M的安装文件,可以提前下载rpm安装包
  下载地址:https://packages.gitlab.com/gitlab/gitlab-ce/packages/el/7/gitlab-ce-10.8.2-ce.0.el7.x86_64.rpm
   3.Gitlab服务操作
  初始化配置Gitlab
    gitlab-ctl reconfigure
  启动Gitlab服务
    gitlab-ctl start
  停止Gitlab服务
    gitlab-ctl stop
4.浏览器访问
  先关闭防火墙
  访问Linux服务器ip地址即可,如果想访问EXTERNAL_URL指定的域名还需要配置余名服务器和本地hosts文件
  初次登陆时需要为Gitlab的root用户设置密码
  创建库(和GitHub差不多的流程)

Git/GitHub基本操作的更多相关文章

  1. Git&Github基本操作与分支管理

    Git的原理涉及快照流.链表.指针等,这里不作过多叙述. 1.基本操作 git init 创建一个 Git 仓库 git clone [url] 拷贝一个 Git 仓库到本地 git add [fil ...

  2. Git——github基本操作

    基本概念 上一篇文章写到git共享仓库,但是有个局限性,就是这个仓库存在于本地,其他人无法从我们这个仓库拿到共享的内容 但是我们可以将这个共享仓库放入一个远程的服务器上,然后设置一些登录权限就能完美的 ...

  3. 【Git/GitHub学习笔记】基本操作——创建仓库,本地、远程同步等

    近日想分享一些文件,但是用度盘又太麻烦了(速度也很恶心).所以突发奇想去研究了下GitHub的仓库,这篇文章也就是一个最最最基础的基本操作.基本实现了可以在GitHub上存储文本信息与代码. 由于我的 ...

  4. Github学习之路-小试牛刀,练习Git 的基本操作

    一.下子windows客户端. Git 客户端下载地址:http://msysgit.github.io/ 二.打开Git Bash 命令行操作界面. 安装完成后,在开始菜单里找到“Git”-> ...

  5. git/github初级运用自如(zz)

    ----//git/github环境配置 一 .  github上创建立一个项目 用户登录后系统,在github首页,点击页面右下角“New Repository” 填写项目信息: project n ...

  6. 【转载】git/github初级运用自如

    之前了解过github,并在上面看了一些项目的源代码,于是自己也在github上创建了账户,希望以后有机会也把自己的项目托管在上面去.但是前提你要先了解git/github,下面的内容是从我的好基友虫 ...

  7. Git GUI基本操作

    一.Git GUI基本操作 1.版本库初始化 gitpractise文件夹就变成了Git可以管理的仓库,目录下多了一个.git文件夹,此目录是Git用于管理版本库的,不要擅自改动里面的文件,这样会破坏 ...

  8. git/github初级运用自如(转自:虫师)

    注:本文来源于 虫师博客(http://www.cnblogs.com/fnng/archive/2012/01/07/2315685.html) ,内容详尽,真实有用. 另:发一个github使用教 ...

  9. 【转】Git GUI基本操作

    一.Git GUI基本操作 1.版本库初始化 gitpractise文件夹就变成了Git可以管理的仓库,目录下多了一个.git文件夹,此目录是Git用于管理版本库的,不要擅自改动里面的文件,这样会破坏 ...

随机推荐

  1. windows系统下,express构建的node项目中,如何用debug控制调试日志

    debug是一款控制日志输出的库,可以在开发调试环境下打开日志输出,生产环境下关闭日志输出.这样比console.log方便多了,console.log只有注释掉才能不输出. debug库还可以根据d ...

  2. ORA-03135 防火墙超时设置断开db link 连接

    [现象] 应用使用数据库连接池,访问A库时通过dblink查询B库,应用时不时会报错ORA. [过程还原] 当应用获取了一个数据库连接,并在数据库连接中使用了dblink,如果应用到A库的连接不释放, ...

  3. 使用Java提供的MXBean来监控jvm创建了哪些线程

    MBean是一种JavaBean,MBean往往代表的是JMX中的一种可以被管理的资源.MBean会通过接口定义,给出这些资源的一些特定操作: 属性的读和写操作 可以被执行的操作 关于自己的描述信息 ...

  4. 企业邮箱绑定微信后,如何设置通过本地验证。(Foxmail)

    老的电脑不行了,换了台暗影精灵3plus顶配,需要把相应的资料移动过来. 然后就发现企业邮箱是绑定了微信的,不能再机器上的Foxmail直接登录,这个问题以前解决过结果自己忘记了,重新解决记录下. 解 ...

  5. 企业级iptables防火墙实战

    iptables生产中在内网一般是关闭的,外围需要开启 大并发情况下,不能开启iptables,会影响性能,使用硬件外网防火墙 学好iptables的基础 1,OSI7层模型以及不同层对应哪些协议 2 ...

  6. limits.conf文件修改注意事项

    limits.conf文件限制着用户可以使用的最大文件数,最大线程,最大内存等资源使用量. vim /etc/security/limits.conf * soft nofile * hard nof ...

  7. slam course

    视频地址:https://www.youtube.com/watch?v=wVsfCnyt5jA 课程网站:http://ais.informatik.uni-freiburg.de/teaching ...

  8. hive中的几个参数:元数据配置、仓库位置、打印表字段相关参数

    hive仓库位置由以下参数决定,默认位置/user/hive/warehouse: <property>         <name>hive.metastore.wareho ...

  9. angularjs 异步请求无法更新数据

    angularjs 有个问题就是第二次ajax请求数据再次赋值给 $scope.data,需要更新视图数据的时候,却不能更改视图数据,这个是因为angularjs的$watch不能监听到JS对$sco ...

  10. 口语详解|为什么“how to say”是错的?

    你有没有说过一些印象深刻的中式英语呢?为什么有的英语会被称之为中式英语想必你大概知道,但是如何把中式英语使用正确你知道吗?今天,跟着小编来看看吧.By the way,今天的主角是"how ...