Git 简介

Git是目前比较流行的分布式版本控制系统之一,能够记录文件的每次修改,还实现了多人并行开发;

Git 组成

  • 工作区(写东西之地)
  • 暂存区
  • 本地仓库(.git)
  • 远程仓库(.repro)

Git 安装

Linux系统

  • git官网 Linux下载

Mac OS系统

  • git官网 Mac下载

在 App Store下载 Xcode

  • brew install git 指令 (前提:电脑得安装 Homebrew)

Windows系统

  • git官网 Windows下载

创建本地库

  1. 创建项目文件夹

    $ mkdir my-project

  2. 进入项目文件夹

    $ cd my-project

  3. 初始化 .git

    $ git init

  4. 查看 .git 文件

    $ ls -la

提交本地库

文件 —> 工作区

当项目目录下的文件被修改,修改内容被自动添加到工作区

工作区 —> 暂存区

git add <file | .>:将修改内容从工作区添加到暂存区

暂存区 —> 本地仓库

git commit -m :将暂存区内容添加到本地仓库,并描述提交的目的
git status:查看文件状态 (红色:文件在工作区;绿色:文件在暂存区;显示nothing no commit, working tree clean说明文件已添加到本地仓库)

版本回退

  • git log <-n>:查看n条 git 日志
  • git reflog <-n>:查看n条历史操作记录
  • git reset --hard HEAD~n:返回第n个版本 (HEAD 代表当前版本)

差异比较

  • git diff:比较工作区与暂存区的内容

文件撤销

  • git checkout --file:撤销工作区修改内容

删除文件

  • git rm --file:删除本地仓库修改内容

本地库与远程库创立链接

  • 一. 创建私钥

  • 二. 添加SSH到GitHub

  • 三. 创建远程仓库并与本地仓库相关联

  • git remote add origin :让本地仓库员与远程仓库建立联系
  • git push <-u> origin master:将本地仓库内容推送到远程仓库master分支上

克隆远程仓库

  • git clone :克隆指定仓库

分支管理

  • 一. 创建分支
  • git branch :创建分支
  • git checkout :切换分支
  • 二. 合并分支
  • git merge :合并分支
  • 三. 删除分支
  • git branch -d :删除本地分支
  • git branch -D :强制删除本地分支
  • git push -d origin :删除远程分支

四. 分支冻结

使用场景:需要去其他分支处理BUG,但当前分支还存在未提交的代码时使用

  • git stash:将当前的分支的修改冻结,使当前分支工作区,暂存区没有内容
  • git stash list:查看冻结列表
  • git stash pop:解冻修改
  • git cherry-pick commit ID:将某个分支的commit合并

五. 多人协作

  • git fetch origin :获取远程指定分支修改
  • git pull origin : git fetch + git merge

标签管理

  • 一. 创建Tag
  • git tag :创建tag
  • 二. 删除Tag
  • git tag -d :删除本地tag
  • git tag push origin :refs/tags/:删除远程tag
  • git push origin tag :推送本地tag到远程仓库
  • git push origin --tags:推送所有未推送的本地tag到远程仓库

其他指令

  • 来源:小和尚学习
  • 参考 :Pro Git中文版
  • 国内下载:git

学习 Git的更多相关文章

  1. 学习 git基础命令

    缘起 年后到了新公司,由于个人意愿到了一个海外的项目组,除了自己从Java技术栈转了C#技术栈外,很多技术都是第一次使用,学习压力不小啊. 自己也就先从常用的技术开始学起,比如C#,AngularJS ...

  2. 学习Git的总结与体会

    学习Git的总结 blog 第一次学习Git是完全按照廖雪峰老师的教程学习的,学的过程中基本上没有遇到什么问题,但是自己实际操作就问题不断了. 首先,还是按照惯例,来膜拜一下廖雪峰老师精简的教程知识吧 ...

  3. 深入理解学习Git工作流

    http://blog.csdn.net/hongchangfirst/article/list/3 //可以看看 http://blog.csdn.net/hongchangfirst/articl ...

  4. [转]深入理解学习GIT工作流

    深入理解学习Git工作流 字数13437 阅读2761 评论3 喜欢70 个人在学习git工作流的过程中,从原有的 SVN 模式很难完全理解git的协作模式,直到有一天我看到了下面的文章,好多遗留在心 ...

  5. 记录我开始学习 Git的路程

    工作半年多了,总觉得没学到什么东西,于是乎找了个Git学习一下,感觉还蛮厉害的样子.为此记录下我的路程 2015,11,26 更新 前面的路都挺艰难的,在官网下载msysgit网速几乎为0(心情千万只 ...

  6. 推荐一个可视化的学习Git的好网站:LearnGitBranching

    博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:推荐一个可视化的学习Git的好网站:LearnGitBranching.

  7. 发现一个不错的学习git的地方

    Git入门:http://rogerdudler.github.io/git-guide/index.zh.html 简洁.实用.高效的学习git基本操作的方式

  8. 深入理解学习Git工作流(转)

    个人在学习git工作流的过程中,从原有的 SVN 模式很难完全理解git的协作模式,直到有一天我看到了下面的文章,好多遗留在心中的困惑迎刃而解,于是我将这部分资料进行整理放到了github上,欢迎st ...

  9. [少数派]如何学习Git

    用玩游戏的方式学习 Git 目录 为什么要学习 Git 怎么学习 Git Learn Git Branching 其他学习资源 用游戏的方式来学习,是一种有趣而高效的方式. 从刚接触电脑时的打字练习软 ...

  10. 深入理解学习Git工作流(git-workflow-tutorial)

    转载:https://segmentfault.com/a/1190000002918123#articleHeader11 人在学习git工作流的过程中,从原有的 SVN 模式很难完全理解git的协 ...

随机推荐

  1. Spring框架学习笔记(4)——SSM整合以及创建Maven自定义模版

    Spring+Spring MVC+MyBatis+Maven SSM整合的核心还是Spring+MyBatis的整合,回顾一下MyBatis操作数据库流程,我们是使用一个SQLSessionFact ...

  2. RocketMQ消息队列部署与可视化界面安装

    MQ安装部署 最新版本下载:http://rocketmq.apache.org/release_notes 修改配置 vi conf/broker.conf 添加brokerIP1 brokerIP ...

  3. ELK日志分析系统(4)-elasticsearch数据存储

    1. 概述 logstash把格式化的数据发送到elasticsearch以后,elasticsearch负责存储搜索日志数据 elasticsearch的搜索接口还是很强大的,这边不详细展开,因为k ...

  4. oracle表空间不足:ORA-01653: unable to extend table

    问题背景: oracle表空间不足报错是比较常见的故障,尤其是没有对剩余表空间做定期巡检的系统: 报错代码如下: oracle表空间不足错误代码:ORA-01653: unable to extend ...

  5. OEMCC 13.3 主机agent部署问题排查

    部署安装 具体的安装过程可参考,Alfred Zhao的文章,非常详细,文章是OEMCC13.2的部署过程.OEMCC13.3没有太大差别. https://www.cnblogs.com/jyzha ...

  6. Python历史+优缺点+应用领域+网站职位简介

    一.Python的历史 1. 1989年圣诞节:Guido von Rossum开始写Python语言的编译器.2. 1991年2月:第一个Python编译器(同时也是解释器)诞生,它是用C语言实现的 ...

  7. 全平台正向tcp端口转发工具rinetd的使用

    Linux下做地址NAT有很多种方法.比如haproxy.nginx的4层代理,linux自带的iptables等都能实现.其实,Linux下有一个叫rinetd的工具,安装简单,配置也不复杂. 下载 ...

  8. 真——Springcloud支持Https

    很久不写了,因为一直没有一个项目的需求推动,担心写的东西可能不是太实际.其间学习的事倒是做了不少,设计模式.领域开发.Antlr.kubernetes等等,其实大部分都记在纸质笔记上了.. 基于对新技 ...

  9. NDN helper 学习记录

    1.StackHelper 主要用于在请求的节点上安装ndnSIM网络堆栈, 提供一种简单的方法来配置NDN模拟的几个重要参数.(官方解释) 其实就是给结点装上堆栈 方法: 全部结点一次性安装(比较常 ...

  10. opencv::调整图像亮度与对比度

    图像变换可以看作如下: - 像素变换 – 点操作 - 邻域操作 – 区域 调整图像亮度和对比度属于像素变换-点操作 //创建一张跟原图像大小和类型一致的空白图像.像素值初始化为0 Mat new_im ...