Git基础级介绍

这篇随笔是在学习了廖雪峰老师的git教程之后写的总结,要看详细的基础级git介绍可以去http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

如果想看更加详细的git介绍,可以去我们的团队博客http://www.cnblogs.com/buaase/p/5066288.html

如果还想看更更加详细的git介绍,可以去百度云盘下载https://pan.baidu.com/s/1nvq46U1  提取码tpah(好像不需要提取码)

以下介绍适合使用过git但是不明白git的朋友阅读

git的基本工作原理

工作区:实际上就是自己编写文件的环境,比如我用java写一个程序,在eclipse中编写的代码就是在工作区中;就相当于我们只是取到了仓库中的文件的镜像,然后对文件修改(事实上对磁盘上的文件作了修改),我们修改文件的地方就是工作区

暂存区:类似于git的一个缓存,在一次提交中,我们可能需要添加很多个文件,于是我们将需要提交的文件一个一个add到暂存区,add完成后,我们用commit命令将刚才所有的add一次性地提交到本地仓库

本地仓库:真git真正管理文件的地方,里面所有的文件都受git的管理,文件的修改,删除,git都有记录

远程仓库:默认名称是origin,远程仓库和本地仓库类似,但是在多人合作的时候,别人能看见远程仓库却不能看见你的本地仓库,每个人也有自己的本地仓库。在多人合作的时候,远程仓库放的往往是最新的代码,就是大家都认为正确的更新才push上去的(push是提交,pull是从远程仓库获取并合并到本地)。在每次提交到远程仓库之前一般都要进行git pull,这是为了避免远程仓库和本地仓库的不一致:远程仓库可能存在其他人修改过后的代码,而你本地仓库还是以前的旧代码,这个时候就需要将远程仓库的代码同步(pull)到本地仓库(可能和本地仓库的代码存在冲突,这个时候需要解决冲突),然后再讲本地仓库的代码提交(push)到远程仓库。

  add的过程是将工作区的文件修改信息放到暂存区,commit是将暂存区的文件修改信息告诉本地仓库,本地仓库就会记录修改信息,将文件版本更新(HEAD指针的变化),pull就是将远程仓库同步到本地仓库,push就是将本地仓库的内容同步到远程仓库

git分支策略

  git branch XX可以创建分支,git checkout XX可以切换到某一个分支:XX表示分支名

  一个分支就相当于一条线,每一个分支都进行独立的开发,互不影响。

  现实中,我们往往在master上发布版本(当需要发布新版本时才会使用,平时不会在master上修改代码),新建一个dev分支进行开发:当需要不新版本时,会将dev分支上的代码和master上的代码进行合并(merge),这样dev上的代码就会更新到master分支上。

  举一个例子来说:

  我们在做数学卷子的时候,正常一点的人(除开很牛逼的和那些无所谓的)都会选择在草稿纸上进行运算,感觉运算结果正确之后才会将结果写在试卷上,最后交卷。这就和分支策略类似:我们的master分支就是试卷,发布新版本就是向广大用户交卷;我么的dev分支就是草稿纸,不管我们在草稿纸上怎么运算,都不会对我们最终的成绩造成影响,只需要将最终运算结果写在试卷上即可(事实上还是不要让你的草稿纸太乱,以免自己都看不懂);我们可以用很多草稿纸来计算(题目比较复杂的话),然后将草稿纸A上的结果写在草稿纸B上,最后才将草稿纸B上的结果写在试卷上,就像我们会有很多分支一样。

冲突:如果我们在打草稿的过程中发现我们以前写在试卷上的结果有问题,这个时候就是冲突。在我们合并分支的时候,发现dev分支和master分支上都修改了同一内容,这个时候git就不知道到底该使用哪一个分支上的内容,于是会在冲突文件上标记(HEAD字样),这个时候只需要修改冲突文件,使其成为你想要的内容,然后重新提交即可。

bug分支:当我们用某种方式发现我们的选择题有问题(当然不是“左顾右盼”),我们就需要拿出草稿纸来进行计算,验证,修改,最后写上正确答案。问题即是bug,我们在遇到bug 的时候就可以另开一个分支来进行bug修改,修改完成之后再合并分支

git的几个命令

常用的add、commit、pull、push就不介绍了

1.git checkout –filename

这里的checkout不是切换分支,而是用仓库的filename文件替换工作区的filename文件,不管是删除还是修改,都可以复原。但是这样一来就会丢弃工作区的修改,就找不回来了

2.git stash

这个命令是暂存工作区的内容,比如我们急需修改某一个bug,但是现在的工作一时半会还不能完成,这个时候就可以使用git stash将工作区的内容保存起来。等到我们处理完bug之后,切回现在的分支,然后使用git stash pop将暂存的内容pop(弹)出来。另外,我们可以使用git stash list查看现在的stash中有哪些内容

3.git log

查看当前的commit信息,每个commit信息有对于的hash码,hash码具有唯一性

4.git reset --hard

这个命令是用来在本地进行回退的,在后面加上参数,可以实现回到某一个commit的状态,参数类型有

HEAD:最近的一次commit(其实就是git log的最新的一项),HEAD指针每一次都是指向最新的commit,当回退之后是指向log的最新的一项

HEAD^:上一次commit

HEAD^:上上次commit

hash码:回到hash码对应的那一次commit,hash码可以通过git log查看,回退之后,log里面没有的commit的log可以通过git reflog查看

时间: 2024-11-08 13:25:24

Git基础级介绍的相关文章

git基础介绍

git基础介绍 这是git操作的基础篇,是以前的写的操作文档,就没有进行手打,直接把图片贴进来了,你们担待哈,有不正确的地方可以指正出来,我将在第一时间去修改,多谢哈! 一.文件状态:git系统的文件状态归属 二.主机之间的操作:克隆他人的项目:合并进行中的项目 三.git通讯录:设置推送的地址 四.git推送到github: github是目前最大的开源代码库,将自己创造的项目传到github,不仅可以让大牛们帮你优化不足,还能让后来的学弟们汲取你的精华,现在就开始练习使用github吧!

Git基础(常用命令)介绍

版本控制是一种记录若干文件内容变化,以便将来查阅特定版本修订情况的系统. 关于版本控制分为三种:本地版本控制系统,如rcs:集中化的版本控制系统,如CVS.SVN:分布式版本控制系统,如Git. Git基础要点 Git和其它版本控制系统的主要差别在于:Git只关心文件数据的整体是否发生变化,而大多数其它系统则只关心文件内容的具体差异. 对于任何一个文件,在Git内都只有三种状态:已提交(committed).已修改(modified)和已暂存(staged).已提交表示该文件已经被安全地保存在本

git基础及分支

关于版本控制 git是一种分布版本控制系统,每一主机都保存了完整副本.必杀技是分支. 在Windows可安装git客户端msysgit. git基础 第一次看progit觉得有点不懂,不懂版本控制,一条条命令写的觉得很麻烦没头绪.这次在看了向导guides.github.com之后,文章避免了一些细枝末节的命令,而是介绍工作流程,懂了一点工作大概流程再开始使用命令比较合适. 三种状态 工作目录.暂存区域.git目录 工作目录就是你打开文件夹看到可见目录.暂存区域含有添加(add)之后的文件.gi

Git基础

这次开发要使用Git取代SVN.借机学习了一二,跟大家分享一下. Git简单介绍 一句话总结的说,Git是一个开源的分布式版本号控制系统,由Linux内核开发者开发,现已用来管理android等多个大型项目. 设计目标: 高速操作 简单设计 并行开发(上千个) 全然分布式 能力超强(类似Linux内核管理) 和SVN 提到版本号管理系统,自然会想到SVN,假设你原来是使用tortoiseSVN操作,你如今能够用tortoiseGit.表面上看.你会发现tortoiseGit除了多了几个诸如Pus

Git详解之二 Git基础

来自:http://www.open-open.com/lib/view/open1328069733264.html Git 基础 读完本章你就能上手使用 Git 了.本章将介绍几个最基本的,也是最常用的 Git 命令,以后绝大多数时间里用到的也就是这几个命令.读完本章,你就能初始化一个新的代码仓库,做一些适当配置:开始或停止跟踪某些文件:暂存或提交某些更 新.我们还会展示如何让 Git 忽略某些文件,或是名称符合特定模式的文件:如何既快且容易地撤消犯下的小错误:如何浏览项目的更新历史,查看某

Git详解之二:Git基础

原文:<Pro Git> Git 基础 读完本章你就能上手使用 Git 了(伯乐在线注:如果你对Git还不了解,建议从本Git系列第一篇文章开始阅读).本章将介绍几个最基本的,也是最常用的 Git 命令,以后绝大多数时间里用到的也就是这几个命令.读完本章,你就能初始化一个新的代码仓库,做一些适当配置:开始或停止跟踪某些文件:暂存或提交某些更 新.我们还会展示如何让 Git 忽略某些文件,或是名称符合特定模式的文件:如何既快且容易地撤消犯下的小错误:如何浏览项目的更新历史,查看某两次更新之间的差

java 网络编程(二)----UDP基础级的示例

下面介绍UDP基础级的代码示例: 首先了解创建UDP传输的发送端的思路: 1.创建UDP的Socket服务.2.将要发送的数据封装到数据包中.3.通过UDP的socket服务将数据包发送出去.4.关闭socket服务. 而接收端的思想如下: 1.创建UDP的Socket服务.需要明确一个端口号.2.创建数据包,用于存储接收到的数据,方便用数据包对象的方法解析各种数据.3.使用socket服务的recive方法将接收到的数据存储到数据包中.4.通过数据包中的方法解析数据包中的数据.5.关闭资源.

【转】Git基础

原文地址:http://www.open-open.com/lib/view/open1328069733264.html Git 基础 读完本章你就能上手使用 Git 了.本章将介绍几个最基本的,也是最常用的 Git 命令,以后绝大多数时间里用到的也就是这几个命令.读完本章,你就能初始化一个新的代码仓库,做一些适当配置:开始或停止跟踪某些文件:暂存或提交某些更 新.我们还会展示如何让 Git 忽略某些文件,或是名称符合特定模式的文件:如何既快且容易地撤消犯下的小错误:如何浏览项目的更新历史,查

NLP汉语自然语言处理入门基础知识介绍

NLP汉语自然语言处理入门基础知识介绍 自然语言处理定义: 自然语言处理是一门计算机科学.人工智能以及语言学的交叉学科.虽然语言只是人工智能的一部分(人工智能还包括计算机视觉等),但它是非常独特的一部分.这个星球上有许多生物拥有超过人类的视觉系统,但只有人类才拥有这么高级的语言. 自然语言处理的目标是让计算机处理或说"理解"自然语言,以完成有意义的任务,比如订机票购物或QA等.完全理解和表达语言是极其困难的,完美的语言理解等效于实现人工智能. 自然语言处理涉及的几个层次: 作为输入一共