zoukankan      html  css  js  c++  java
  • Git/GitHub基本操作

    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差不多的流程)

  • 相关阅读:
    ios -为什么用WKWebView加载相同的html文本,有时展示的内容却不一样。
    weex
    [Objective-C 面试简要笔记]
    [iOS 基于CoreBluetooth的蓝牙4.0通讯]
    [SVN Mac自带SVN结合新浪SAE进行代码管理]
    [SVN Mac的SVN使用]
    [iOS dispatch_once创建单例]
    [iOS UI设计笔记整理汇总]
    [iOS 视频流开发-获得视频帧处理]
    [iOS OpenCV错误解决]
  • 原文地址:https://www.cnblogs.com/linyouyi/p/9938253.html
Copyright © 2011-2022 走看看