一.Git简介

  Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。于是Git 成了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

  (Git目前使用率非常高的一款版本控制软件,相比较集群式版本控制SVN,CVS等,它采用了分布式版本库的方式,不必服务器端软件支持)有兴趣的可以去看看Git和SVN的区别。

二.对分布式版本控制系统的理解

  集群式版本控制系统和分布式版本控制系统有什么区别?

    集群式版本控制系统:版本库是集中存放在中央服务器的,而不是个人的电脑。而开发基本都是用自己的电脑,所以要先从中央服务器取得最新的版本,然后开始开发,开发完成后,再把自己的内容发给中央服务器。中央服务器就好比是一个图书馆,你要改一本书,必须先从图书馆借出来,然后回到家自己改,改完了,再放回图书馆。

      缺点:由于每次修改版本都需要访问中央服务器,所以需要联网,同时,一旦中央出现问题,会导致全部模块受到影响。

    分布式版本控制系统:分布式版本控制系统没有中央服务器,每个人的电脑上都是一个完整的版本库。所以每个人都可以独立进行开发,而且开发的过程并不需要联网,只是在提交更新需要有网络,此时所有人的信息都更新到一个临时中心服务中,供所有人更新信息。当然,这个临时中心服务并不是中心服务器,没有它,每个人也能工作,它只是用来方便交换大家修改的数据。在实际开发中,Git一般用GitHub或GitLab作为中央服务。

    分布式的版本控制安全性要比集中式高很多,而且灵活度也很高,提交的说明可以更改。另外,它不需要专门的管理人员来管理所有人的更新操作,对于提高工作效率有很大的帮助。

三.Git安装和配置

  Windows的安装流程:

    1.下载软件,推荐链接:https://gitforwindows.org/

    2.下载的是一个安装包,一直点击下一步安装即可(注意不要安装在中文目录下)

    3.安装完毕后,为git的安装目录配置环境变量(这里是在Path上添加git-bash和git-cmd的路径即可)

    4.鼠标右键可以看到如图所示

      

      点击Git Bash Here,出现窗口如下图所示

      

    5.配置用户名和邮箱等

git config --global user.name "你的用户名" #配置用户名
git config --global user.email "你的邮箱" #配置邮箱,例如qq邮箱等

      配置完成后在c盘默认会有一个.gitconfig文件,里面有你的配置信息,例如

      

    6.配置ssh

ssh -keygen -t rsa -C 你的邮箱

      一直回车即可,成功后会在c盘中生成一个.ssh文件夹,如下所示

      

    7.在GitHub上配置ssh,登陆GitHub后,在setting中配置,流程如下图所示

      

    8.将id_rsa.pub中的内容拷贝到Key中,如下图

      

    9.在git-bash中连接GitHub

ssh -T git@github.com

      输入yes后,可以发现在.ssh文件夹中多出一个known_hosts文件,并且git-bash中显示如下

      

四.Git基本操作

    1.在项目的文件夹中右键启动git-bash,输入git init即可创建Git项目(将项目交给git管理)。

    2.在GitHub中创建项目

    3.拷贝在GitHub中创建的项目的ssh地址,例如本人创建一个test项目后的URL是git@github.com:RetimeFor/test.git

    4.本地Git项目与远程项目关联

git remote add origin git@github.com:RetimeFor/test.git

    5.第一次发布项目(发布本地项目到GitHub中)

      项目放到暂存区中

git add .

      放到对象区中

git commit -m "这是发布的说明"

      最后输入如下命令(如果不是第一次,可以去掉-u),将项目发布到远程仓库中

git push -u origin master

      成功发布后如下图所示

      

    6.从GitHub上下载项目到本地

      复制需要下载的项目的URL

      

      在git-bash中输入以下命令即可完成下载

git clone git@github.com:RetimeFor/test.git

    7.更新本地的项目

git pull

五.在编辑器中对git项目操作

  1.IDEA和eclipse目前都集成了git工具,安装git完毕后,IDEA和eclipse一般会自动配置好。如下两图

    

    

  2.如果是IDEA,选择IDEA上方的导航中的VCS,选择版本控制工具为Git

    

  3.继续点击VCS,选择VCS Operations,选择commit,如下图所示

      

  4.选择需要提交的文件,输入提交信息点击提交即可将项目提交到本地

    (右键项目,选择Git,点击Show History可以查看提交历史)

  5.继续点击VCS,选择VCS Operations,选择push,输入GitHub上的项目的URL即可,如图所示

    

  如果是eclipse,右键项目,选择Team,选择Share Project,然后进行add,commit与push操作即可,这里不再截图了。

  6.如果需要下载远程仓库的项目到本地,点击VCS,在点击Git,选择clone即可

  7.如果需要更新项目到本地,点击VCS,选择Git,选择pull即可

六.Git更新冲突问题

  如果有人在远程仓库更新了项目,而你也在本地与他更新了类似的东西准备提交到远程仓库,这时就会出现Git提交冲突,如下:

   本地:

     

   远程:

    

   push发生冲突:

    

  解决:右键项目选择Git,选择Repository点击Stash Changes创建一个stash,然后pull或push项目选择Merge,手动修改最终保存的项目,如图

    

    或者直接手动merge,然后add 和commit即可。

【版本控制工具】 Git基础的更多相关文章

  1. 版本控制工具Git工具快速入门-Windows篇

    版本控制工具Git工具快速入门-Windows篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 最近在学习Golang语言,之前的开发环境在linux上开发的,后来由于办公用的是w ...

  2. 开源分布式版本控制工具 —— Git 之旅

    Git 主张的分布式代码库与文件快照的设计思想,相对于传统 CVS.SVN 等集中式.文件差异式版本控制工具是一种挑战与颠覆.Git 带来了离线提交.轻量级分支等诸多便利.不过,也有人质疑 Git 的 ...

  3. 版本控制工具Git介绍-01

    使用版本控制工具是为了方便团队开发,比如多人共同维护一个项目的时候,用版本控制工具可以很方便的维护项目代码,如果哪天你改了一个版本,出问题了,我们也可以很快的找到你改了什么,这里介绍使用比较多的版本控 ...

  4. 版本控制工具——Git常用操作(上)

    本文由云+社区发表 作者:工程师小熊 摘要:用了很久的Git和svn,由于总是眼高手低,没能静下心来写这些程序员日常开发最常用的知识点.现在准备开一个专题,专门来总结一下版本控制工具,让我们从git开 ...

  5. 版本控制工具 - Git

    版本控制工具 - Git 安装完成后,打开Git Bash,这是一个命令行工具,用于操作仓库和仓库的文件.你可以通过命令将已经存在的项目变成仓库,也可以重新创建一个新项目再通过命令将其变成仓库,还可以 ...

  6. 痞子衡嵌入式:备受开源社区推崇的分布式版本控制工具(Git)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是分布式版本控制工具Git. 1.为什么需要版本控制系统? 单人软件项目开发过程,往往很多功能都是逐步增加的,在代码开发过程中,有的时候功 ...

  7. 版本控制工具Git工具快速入门-Linux篇

    版本控制工具Git工具快速入门-Linux篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.版本管理系统的介绍 1>.版本管理系统的特点 1.1>.自动生成备份: ...

  8. 代码管理工具-Git基础介绍及常用技巧

    目录 Git起源 基本概念 Branch.HEAD和Commit tree Git分支 git merge 和 git rebase 的区别和抉择 与远程仓库的交互 关于一些实际开发场景的问题和解决方 ...

  9. window下版本控制工具Git 客户端安装

    安装使用 1.下载msysgit http://code.google.com/p/msysgit/ 2.下载tortoisegit客户端安装 http://code.google.com/p/tor ...

  10. 版本控制工具git入门

    版本控制工具的历史 不说了,放张图 两者的区别:集中式需要一个中心服务器放置最新的文件,需要联网操作.分布式可以再不联网的情况下操作,前提要拥有版本库 git安装  略 github注册 略 如何在g ...

随机推荐

  1. [转]html中meta作用

    meta是html语言head区的一个辅助性标签.几乎所有的网页里,我们可以看到类似下面这段的html代码:  <head>  <meta http-equiv="cont ...

  2. 安装xampp扩展你要注意这些

    Windows下安装PHP扩展是一件很麻烦的事情,看一个xampp扩展的附件名一般都是这样的命名规则,如:xampp_http-5.3-nts-svn20091125-vc9-x86.zip 你要了解 ...

  3. java文件夹上传下载控件分享

    用过浏览器的开发人员都对大文件上传与下载比较困扰,之前遇到了一个需要在JAVA.MyEclipse环境下大文件上传的问题,无奈之下自己开发了一套文件上传控件,在这里分享一下.希望能对你有所帮助. 以下 ...

  4. SQL SERVER 数据库安装完毕之后如何修改数据库实例排序规则

    背景 最近我们在azure portal 上开了几台英文版的数据库服务器,因默认是开启就安装好对应的数据库,所以存在一个实例排序规则的问题,需把整个实例都调整成Chinese_PRC_CI_AS,避免 ...

  5. 大容量类Redis存储--Pika介绍

    嘉宾介绍 大家好,首先自我介绍一下,我是360 web平台-基础架构组的宋昭,负责大容量类redis存储pika的和分布式存储Bada的开发工作,这是我的github和博客地址,平时欢迎指正交流^^ ...

  6. 如何上传整个项目或者是文件夹到github

    原文地址:https://www.cnblogs.com/cairsha/p/11430436.html   在做github个人主页的时候,使用github的readme写起来很麻烦,而且也不好加入 ...

  7. jvm学习笔记:一、类的加载、连接、初始化

    在JAVA代码中,类型的加载.连接与初始化过程都是程序运行期间完成的. 类型的加载:将已经存在的class从硬盘加载到内存. 类型的连接:将类与类之间的关系确定好. 类型的初始化:类型 静态的变量进行 ...

  8. Kick Start 2019 Round A Parcels

    题目大意 $R \times C$ 的网格,格子间的距离取曼哈顿距离.有些格子是邮局.现在可以把至多一个不是邮局的格子变成邮局,问每个格子到最近的邮局的曼哈顿距离的最大值最小是多少. 数据范围 $ 1 ...

  9. [转]C#集合类型大揭秘

    作者:撸码那些事 来源:https://www.cnblogs.com/songwenjie/p/9185790.html 集合是.NET FCL(Framework Class Library)的重 ...

  10. spark教程(15)-Streaming

    Spark Streaming 是一个分布式数据流处理框架,它可以近乎实时的处理流数据,它易编程,可以处理大量数据,并且能把实时数据与历史数据结合起来处理. Streaming 使得 spark 具有 ...