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. Newtonsoft.Json.Linq 常用方法总结

    目录 1.Entity to Json 1.1.准备工作 1.2.Entity to Json 1.3.Json to Entity 2.Linq To Json 2.1.创建对象 2.2.从 Jso ...

  2. Ansible Roles角色

    Roles小技巧: 1.创建roles目录结构,手动或使用ansible-galaxy init test roles 2.编写roles的功能,也就是tasks. nginx rsyncd memc ...

  3. 教你如何判断URL的好坏

    1.最核心-网站整体内容质量2.关键词整理拓展及关键词布局3.网站外部链接建设4.网站内链建设合理5.面包屑导航6.友情链接7.404页面网站的SEO站外优化+SEO外链建设 层级:三层为好,301重 ...

  4. Kafka技术原理知识点总结

    1.Kafka是由Linkedin公司开发的,使用Scala语言编写的,分布式,多副本,多分区的,发布订阅模式的消息系统,他通常用于日志系统的搭建,2.Kafka和Zookeeper:Kafka通过Z ...

  5. 面试必备:高频算法题终章「图文解析 + 范例代码」之 矩阵 二进制 + 位运算 + LRU 合集

    Attention 秋招接近尾声,我总结了 牛客.WanAndroid 上,有关笔试面经的帖子中出现的算法题,结合往年考题写了这一系列文章,所有文章均与 LeetCode 进行核对.测试.欢迎食用 本 ...

  6. oracle弱口令攻击

    oracle弱口令攻击   0x00 oracle数据库简介 oracle数据库是现在很流行的数据库系统,很多大型网站都采用Oracle,它之所以倍受用户喜爱是因为它有以下突出的特点: 一.支持大数据 ...

  7. php 加入 unless 语法

    1. php 的版本 :PHP 7.3.0-dev (cli) (built: Mar 18 2018 00:28:55) ( NTS ) 2. unless 语法结构: unless($cond){ ...

  8. Ajax:后台jquery实现ajax无刷新删除数据及demo

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAA8gAAAFSCAIAAAChUmFZAAAgAElEQVR4nO29z4scWZbn2/+Hb30zi8

  9. spring源码系列7:Spring中的InstantiationAwareBeanPostProcessor和BeanPostProcessor的区别

    概念 Bean创建过程中的"实例化"与"初始化"名词 实例化(Instantiation): 要生成对象, 对象还未生成. 初始化(Initialization ...

  10. freertos学习

    freertos的基本框架如下 注意有三点很重要: 1.任务的资源 (1)任务优先级:freertos 能够调度的任务优先级在freertosConfig.h中的configMAX_PRIORITIE ...