以前总听说git【分布式版本控制系统】自己愣是搞不懂它到底要干哈~什么叫版本控制系统根本理解不了。现在工作需要必须要用到,结果好像就突然懂了git是干什么滴。

所以!原理这个东西的理解是要建立在大量的练习使用的基础上的!

版本库即仓库,英文名repository,里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。

初始化一个本地版本库: git init     (我们一般会创建一个文件夹,进入该文件夹后执行该指令,执行该指令后,该文件夹就成为了工作区

一般我们平时使用的大多是:(顺序也大致如下)(在master分支下)

git pull  ——>  先将远程版本库中的其他修改pull到本机

git status  ——>  查询master分支下本机的代码状态(会显示有修改的文件名、新添加的文件名)

git diff  ——>  显示你具体修改了哪些部分

git add filename1 filename2...  ——>  将修改后的代码添加到版本库的index中

git commit -m "XXXXX"  ——>  将index中的代码全部提交到master中,commit后,index被清空

git push  ——>  提交到远程仓库

【提交过程结束】

当你init后,会生成一个.git文件夹,事实上这个.git就是版本库。这里面存着很多信息,最重要的就是:index暂存区、git为我们创建的第一个分支master、指向master的一个指针HEAD

add ——> index, commit ——> master, push ——> 远程

在分支下提交代码的过程:

git pull

git branch nyn  ——>  创建分支nyn

git checkout nyn  ——>  切换到分支nyn

git status

git add filename1 filename2...

git commit -m "XXX"

git push origin nyn  ——>  提交该分支下的全部修改到远程(不能使用git push哦~)

Git把每次提交修改串成一条时间线,这条时间线就是一个分支。HEAD严格来说不是指向提交,而是指向当前分支,因为我们最初没有添加新的分支,一直提交到master中,因此,我们说HEAD指向master。当我们创建了分支dev,即Git新建了一个指针叫dev,此时dev指向master相同的提交,现在切换指针指向把HEAD指向dev,就表示当前分支在dev上,创建分支后仅仅是改变了HEAD指向,工作区的文件没有任何更改。

那么我们后续对工作区的修改和提交就是针对dev分支了,比如新提交一次后,dev指针往前移动一步,而master指针不变:

将dev合并到master:

删除分支dev:

与上述流程相关的分支指令:

git branch  ——>  查看当前的分支

git branch nyn

git checkout nyn  ——>  切换到分支nyn(即HEAD指向了nyn)

git chechout master  ——>  切换回master(即HEAD指向了master)

git merge nyn  ——>  将分支nyn与当前分支master合并(即HEAD指向了master)

git branch -d nyn  ——>  删除分支nyn(即HEAD指向了master)

最近还用到的一些指令:

git log  ——>  可查看提交历史

git reflog  ——>  可查看输入的命令历史

(以下这两个还没有仔细研究,还有待继续学习,后期再补~)

git reset --hard commitID  ——>  版本间穿梭

git checkout -- filename  ——>  丢弃修改

git还有很多东西需要学,学了新东西再补笔记咯~笔记中的示意图全部来自于http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000。有兴趣从头学的小伙伴移步链接啦~

对git的理解及常用指令的更多相关文章

  1. Git版本控制原理和常用指令说明

    平时在Android Studio开发Android项目,习惯了点击右键或图标直接拉新fetch,pull,commit和push.但是必要的时候还得在终端输入命令行.比如正在开发新版本v3.0,老板 ...

  2. 使用git的几个常用指令

    1. 移除git:rm -rf .git/ 2.查看结果:ls -al 3.语法糖(查看列表):ll 4.将远程库的内容,更新到本地:git pull origin master: 5.添加到本地仓库 ...

  3. Git 基本知识与常用指令

    一.Git代码状态转换图 其中: 未被Git跟踪的状态为unstage状态: 已被Git跟踪的状态为stage状态(stage:阶段),因此包括staging状态和staged状态. untrack ...

  4. 使用代码管理工具(git)管理代码的常用指令合集

    create a new repository on the command line echo "# test" >> README.md git init git ...

  5. iOS开发——源代码管理——git(分布式版本控制和集中式版本控制对比,git和SVN对比,git常用指令,搭建GitHub远程仓库,搭建oschina远程仓库 )

    一.git简介 什么是git? git是一款开源的分布式版本控制工具 在世界上所有的分布式版本控制工具中,git是最快.最简单.最流行的   git的起源 作者是Linux之父:Linus Bened ...

  6. 实践中的Git常用指令分析

    从工作开始,一直都在使用为知笔记(作为程序员需要知道的内容很多---不需要很深入理解,一段时不使用的东西可能就会忘记).但本周一同步不同PC端时,了解到为知会在2017/1/1开始收费! 既然收费了, ...

  7. git/github常用指令、入门

    git的基本常用指令: 1.cd:切换路径 2.mkdir:进入文件夹目录 3.pwd:显示当前目录的路径 4.git init:把当前的目录变成可以管理的git仓库,生成隐藏.git文件 5.git ...

  8. 【常用指令】git+服务器+数据库

    git日程操作 服务器常用操作 ①同步master git pull origin master ②创建分支 git checkout -b 分支名 ③常规操作 git diff git add 文件 ...

  9. git 详细教程和常用操作指令

    git 内部工作原理图 如上图,git 一般可以分为三个区:工作区.暂存区.版本库,通常类似 git add等命令都是与index 暂存区的交互,git commit指令则是 index 与版本库的交 ...

随机推荐

  1. 前端面试题2016--HTML

    本文由我收集总结了一些前端面试题,初学者阅后也要用心钻研其中的原理,重要知识需要系统学习.透彻学习,形成自己的知识链.万不可投机取巧,临时抱佛脚只求面试侥幸混过关是错误的!也是不可能的!不可能的!不可 ...

  2. .Net Globalization and Localization

    随着互联网的发展日益壮大和活跃,网上购物交易越来越频繁,一个网站支持多种语言在所难免,所以国际化和本地化在现在的网站中的作用越来越大,一个网站的使用量和搜索量有可能受国际化的影响一点.所以在当今做一个 ...

  3. CGI,FastCGI,PHP-CGI与PHP-FPM

    CGI CGI全称是“公共网关接口”(Common Gateway Interface),HTTP服务器与你的或其它机器上的程序进行“交谈”的一种工具,其程序须运行在网络服务器上. CGI可以用任何一 ...

  4. ajax无刷新删除、复制 THINKPHP

    一.jquery 代码: <SCRIPT LANGUAGE=javascript> function delGoods(goodsID) {      if(confirm( " ...

  5. sql sever跨数据库复制数据的方法【转】

    1,用Opendatasource系统函数 详细的用法已经注释在sql代码中了.这个是在sqlserver到sqlserver之间的倒数据.2005,2008,2012应该都是适用的. --从远程服务 ...

  6. 一个crackme的分析

    是看雪合集的一个,因为老师让我们多练习,所以我就找了个crackme来练习 http://images2015.cnblogs.com/blog/638600/201612/638600-201612 ...

  7. LeetCode 3 Longest Substring Without Repeating Characters 区间,想法 难度:1

    https://leetcode.com/problems/longest-substring-without-repeating-characters/ 思路:从某点结束所能取到的最早开头是到目前出 ...

  8. Haskell 参考资料

    1.Haskell 中文社区:www.haskellcn.org 2.Haskell   官网:     www.haskell.org 3.Haskell   函数查询:www.haskell.or ...

  9. RASPBERRY PI wifi配置

    Raspberry Pi 手把手教你在树莓派上安装USB无线网卡支持WIFI 树莓派虽然已经有了有线网卡,但是并未配置无线网卡,移动性不够强,好在机器配备了2个USB口,当然要分一个出来给WIFI无线 ...

  10. 初学者的python学习笔记2

    本来想是先把作业二搞定的,结果发现作业二用的字典,一脸懵逼,还是先搞定第二课吧.其实第二课和第一课内容差不多,据说是第一课的老师去美国了……不管怎么样先整理一下吧. ----------------- ...