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. MongoDB 走马观花(全面解读篇)

    目录 一.简介 二.基本模型 BSON 数据类型 分布式ID 三.操作语法 四.索引 索引特性 索引分类 索引评估.调优 五.集群 分片机制 副本集 六.事务与一致性 一致性 小结 一.简介 Mong ...

  2. 初探内核之《Linux内核设计与实现》笔记上

    内核简介  本篇简单介绍内核相关的基本概念. 主要内容: 单内核和微内核 内核版本号 1. 单内核和微内核   原理 优势 劣势 单内核 整个内核都在一个大内核地址空间上运行. 1. 简单.2. 高效 ...

  3. Coins POJ - 1742

    给出硬币面额及每种硬币的个数,求从1到m能凑出面额的个数. Input 多组数据,每组数据前两个数字为n,m.n表示硬币种类数,m为最大面额,之后前n个数为每种硬币的面额,后n个数为相应每种硬币的个数 ...

  4. SQL SERVER数据库多having 用法

    举实例:查询大于500的数据,并按时间进行汇总排序 select  CONVERT(VARCHAR(10),DGH,23),COUNT(*) from  yxhis2017..VTBMZGHMX201 ...

  5. PhpSpreadsheet 导出特定格式 — 广告请款单

    需求说明 最近需要实现一个导出这种格式的Excel表单,之前都有用过导出Excel的功能,但大都是表头+数据的形式,只用于获取数据,没有太多样式要求,不用合并单元格.合并居中等,也不用对每一行数据特异 ...

  6. 小白学 Python(3):基础数据类型(下)

    人生苦短,我选Python 引言 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 前面我们介绍过了数字,本篇我们接着聊另一个常用的基础数据类型:字符串. ...

  7. Ubuntu 重装vmtool

    1. 虚拟机菜单 ->  更新虚拟机  : 2. 弹出的窗口中: 3. 拷贝红色的文件到可读写的目录: 4. 解压,运行解压出来的绿色脚本文件,一路回车:

  8. Api版本管理

    关于SpringMVC中如何添加,这一篇说的很详细了. http://www.cnblogs.com/jcli/p/springmvc_restful_version.html 版本管理可以通过路径进 ...

  9. HDU 1532 Drainage Ditches(最大流 EK算法)

    题目网址:http://acm.hdu.edu.cn/showproblem.php?pid=1532 思路: 网络流最大流的入门题,直接套模板即可~ 注意坑点是:有重边!!读数据的时候要用“+=”替 ...

  10. Kubernetes WebSSH终端窗口自适应Resize

    追求完美不服输的我,一直在与各种问题斗争的路上痛并快乐着 上一篇文章Django实现WebSSH操作Kubernetes Pod最后留了个问题没有解决,那就是terminal内容窗口的大小没有办法调整 ...