Git是分布式版本号控制系统。与SVN类似的集中化版本号控制系统相比。集中化版本号控制系统尽管可以令多个团队成员一起协作开发,但有时假设中央server宕机的话,谁也无法在宕机期间提交更新和协同开发。

甚至有时,中央server磁盘故障,恰巧又没有做备份或备份没及时,那就可能有丢失数据的风险。


但Git是分布式的版本号控制系统。client不仅仅是提取最新版本号的快照,并且将整个代码仓库镜像复制下来。假设不论什么协同工作用的server发生问题了,也能够用不论什么一个代码仓库来恢复。

并且在协作server宕机期间,你也能够提交代码到本地仓库,当协作server正常工作后。你再将本地仓库同步到远程仓库。

安装Git

Linux系统下通过git命令查看安装情况,假设没有安装能够通过sudo apt-get install git完毕安装。

安装完毕后。还须要通过进一步设置

git config --global user.name "name"

git config --global user.email "email address"

创建版本号库

什么是版本号库呢?版本号库又名仓库,英文名repository,你能够简单理解成一个文件夹。这个文件夹里面的全部文件都能够被Git管理起来,每一个文件的改动、删除,Git都能跟踪。以便不论什么时刻都能够追踪历史,或者在将来某个时刻能够“还原”。

创建一个空文件夹,并在当前文件夹以下使用git init将这个文件夹变成Git能够管理的仓库。

写好一个文件后能够使用git add filename将文件加入到仓库。

使用git commit -m "your describe"把文件提交到仓库-m后面的參数用于描写叙述文件的更改情况。以便于每次查看;

版本号查看

git status能够实时查看仓库的状态

git diff filename 能够查看当前文件上一次提交的文件的不同

git log能够查看版本号的历史记录

git reflog查看历史命令

因为在Git中HEAD指向的是当前版本号。因此能够使用git reset --hard commit_id(提交的版本号的ID号或者HEAD^-上一版本号。HEAD^^-上上版本号,HEAD~100上100个版本号)

版本号回退

1.当你想丢弃工作区的改动时能够使用git checkout --filename

2.当改动之后又提交到暂存区时能够使用git reset HEAD filename就回到了1的情况。然后反复1的操作就可以

删除文件

git rm filename能够从版本号库中删除文件,并用git commit提交

远程仓库

关于配置和克隆请參考廖老师博客点击打开链接

分支管理

使用git checkout -b branchname能够创建一个分支并切换到该分支。其相当于命令git branch branchname加上git checkout branchname(用于在分支间切换)

git branch 能够查看分支,当前分之前会有一个*

合并某分支到当前分支git merge branchname(高速合并)能够使用git merge --no-ff -m "your describ" branch关掉高速合并。这个时候能够看到以前做过的合并

删除分支git branch -d branchname

(当git无法自己主动合并分支时,说明存在冲突这个时候要解决掉冲突然后才干合并)

git log --graph能够看到分支合并图

git stash能够暂存当前的工作现场,然后修复bug,再git stash pop回到工作现场

假设要丢弃一个没有被合并过的分支。能够通过git branch -D filename强行删除

多人合作

git remote -v显示具体的远程库信息

git push origin branchname将本地分支推送到,假设失败用git pull抓取远程的新提交

git checkout -b branchname origin/branchname在本地创建和远程分支相应的分支

git branch --set-upstream branchname origin/branchname

git pull从远程抓取分支

Git版本号控制的更多相关文章

  1. Git版本号控制 为什么那么复杂 头大 (忍不住强烈吐槽)

    想把自己的源代码保存到云端.想到了用Github.com,然后便開始看怎么使用GIT. 一開始,没有接触之前,想的非常easy的.应该就跟SVN几乎相同吧.写好了提交就能够了. 只是使用了之后才发现根 ...

  2. 在项目开发中使用Git版本号控制工具以提高效率

    安装Git(linux centos平台) 源代码方式安装 1.装依赖 $ yum install curl-devel expat-devel gettext-devel openssl-devel ...

  3. Git版本号控制:Git分支处理

    http://blog.csdn.net/pipisorry/article/details/46958699分支的意义创建分支能够避免提交代码后对主分支的影响,同一时候也使你有了相对独立的开发环境. ...

  4. Git(一):Git与版本号控制简单介绍

    Intro 版本号控制系统是什么      版本号控制系统(Version Control System,VCS)能够帮助我们记录和跟踪项目中各文件内容的改动变化.它能够帮我们保存项目的各个版本号.以 ...

  5. eclipse中使用git进行版本号控制

    协作开发的时候没有版本号控制是非常痛苦的事情,使用git能够非常好的完毕这项任务,由于非常多的开源码都在github上公布,因此学会使用git是非常重要的一项技能. 这篇写的是在eclipse下使用的 ...

  6. 版本号控制-git(二)

    上次文章给大家介绍了Git的一些基本知识(http://www.cnblogs.com/jerehedu/p/4582398.html).并介绍了使用git init初始化化版本号库.使用git ad ...

  7. 云盘+Git GUI实现云盘文件版本号控制

    以下介绍操作细节 1.先下载Git GUI 下载地址:http://msysgit.github.io/       再下载百度云网盘 下载地址:http://pan.baidu.com 接下来就是安 ...

  8. 版本号控制-GitHub

    前面几篇文章.我们介绍了Git的基本使用方法及Gitserver的搭建.本篇文章来学习一下怎样使用GitHub. GitHub是开源的代码库以及版本号控制库,是眼下使用网络上使用最为广泛的服务,Git ...

  9. [Android]egit取消文件版本号控制

    开发项目,多人合作开发变得越来越重要了,在此同一时候,使用git作为协同工具也是越来越多.在此.介绍一下egit取消文件版本号控制的方法. (egit即为eclipse中的git插件) 1.打开Nav ...

随机推荐

  1. 编写SDR SDRAM页突发模式控制器的注意点

    网上有很多的SDR SDRAM控制器的代码,但都是基于burst1/2/4/8模式下的,这种模式下传输高速的相机数据还是有点拮据的,所以花了几天把这些模式改造成了页突发模式.我的这个控制器模型是这样的 ...

  2. tp5自定义扩展类的使用extend

    1.在入口index.php定义目录 define('EXTEND_PATH', __DIR__ .'/../extend/'); 2.在使用页引用 use lib\Page; 3.初始化 $page ...

  3. nginx 代理https后,应用redirect https变成http --转

    原文地址:http://blog.sina.com.cn/s/blog_56d8ea900101hlhv.html 情况说明nginx配置https,tomcat正常http接受nginx转发.ngi ...

  4. HDU 4786Fibonacci Tree(最小生成树)

    Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission( ...

  5. appium使用教程(一 环境搭建)-------------2.安装部署

    1)      安装appium     2)      SDK(不建议使用模拟器,占用内存很大,会造成机器卡顿.另外模拟器还存在兼容性问题:pc为x86架构,绝大多数的手机都是ARM架构,app的兼 ...

  6. 洛谷1414 又是毕业季II

    问题描述 彩排了一次,老师不太满意.当然啦,取每位同学的号数来找最大公约数显然不太合理.于是老师给每位同学评了一个能力值.于是现在问题变为,从n个学生中挑出k个人使得他们的默契程度(即能力值的最大公约 ...

  7. 容器配置https

    生成秘钥库 通过jdk的keytool工具生成秘钥库 keytool -genkeypair -alias "localhost" -keyalg "RSA" ...

  8. ubuntu18.04安装dash-to-dock出错的问题

    之前在安装dash-to-dock出现了这种错误: TypeError: ExtensionUtils.initTranslations is not a function Stack trace:i ...

  9. 【深度学习大讲堂】首期第一讲:人工智能的ABCDE 第二部分:简谈当前AI技术与发展趋势

    (完)

  10. 网络编程select函数

    select函数的作用: 在编程的过程中,经常会遇到许多阻塞的函数,好像read和网络编程时使用的recv, recvfrom函数都是阻塞的函数,当函数不能成功执行的时候,程序就会一直阻塞在这里,无法 ...