GIT(分布式)


一、Git 初始版本控制工具

   1. 安装Git

    Ubuntu系统下,打开shell界面,输入: sudo apt-get install git-core  之后回车输入密码,即可完成git的安装

    Windows系统下,访问:https://git-for-windows.github.io/ 下载应用程序,选择相应版本进行安装

   2. 创建代码仓库

    进入到Git Bash 命令操作,

      i. 配置身份信息,用于在提交代码的时候Git知道是谁提交的

        执行命令: git config --global user.name "用户名"   回车

           git config --global user.email "邮箱号码@gmail.com"  回车

      ii. 创建代码仓库(Repository)

        进入项目根目录下,输入命令: git init  即可完成创建;

           创建成功后,项目的根目录下会生成一个隐藏的.git文件夹。 ——用于记录本地的所有git操作

           执行命令: ls -al 可以查看当前目录下的所有文件及文件夹

   3. 提交本地代码

     主要用到addcommit 命令操作: add是用于把想要提交的代码先添加进来,而commit则是真正地去执行提交代码操作。

        比如: git add Text.java  是添加单个Text.java文件

            git add src  是将src目录下的所有文件进行添加

            git add .  是添加项目的所有文件进行添加

            git commit -m "描述性文字" 提交代码 (注:描述性文字一定要有,否则会被认为是不合法的)

二、Git 版本控制工具进阶

  1. 忽略文件

    场景分析: Android项目中的 如:bin和 gin 目录下的文件是会自动生成的,不需要添加到版本控制中去

      So: Git 提供了一个可适配性很强的机制

            ---------->>>>>它会检测代码仓库下是否存在 .gitignore 的文件, 如果有的话,会把里面的文件都排除在版本控制之外。

                    (注:.gitignore 中的文件或目录可以使用通配符“*”)

      具体实现:

        在需要项目文件夹下 点击鼠标右键 进入git bash 命令窗口

            执行命令: touch .gitignore  创建文件夹成功  

                 vim .gitignore  启动编辑器 接下来输入需要忽略的文件或者文件夹名 即可实现目的

   2. 查看修改内容

    执行命令: git status  可进行查看

    执行命令: git diff 文件路径 可以看到更详细的更改信息 (注:--- 表示删除的部分, +++表示添加的内容)

  3. 撤销未提交的修改

    执行命令:git checkout 可以撤销未提交的更改

      对于已经执行 add 操作添加了的文件, 可以执行 git reset HEAD 文件路径 命令操作 使文件变回未添加状态 再。。。git checkout。。。即可

  4. 查看提交记录

    git log : 可以查看历史提交信息

    git log 某条提交记录的id -1 -p : 对于只想查看某条提交内容 具体修改了什么内容

三、Git 版本控制工具的高级用法

  1. 分支的用法(Branch)

    首先了解下分支的作用: 使得代码可以在主干线和分支线上同时进行开发, 且相互之间不会影响。

      i. 如何查看当前的版本库中有哪些分支?

         使用命令操作: git branch -a   可以完美解决   (注: * 表示当前所在的分支)

      ii. 如何创建分支?

         git branch version1.0   即创建了一个名为version1.0的分支

      iii. 怎样切换到分支上去呢?

         比如: 进入到version1.0 分支   可以执行命令: git checkout version1.0   

      iv. 如何将分支version1.0 上解决bug 修改并提交的内容合并到master主分支上?

         git checkout master  |----next---->  git merge version1.0

      v. 用完分支想删掉怎么办?

         删除分支:  git branch -D version1.0(你想要删除的分支名)

   2. 与远程版本库协作

    现有一个远程版本库Git地址 为: https://github.com/example/test.git

      将代码下载到本地:  git clone https://github.com/example/test.git

      将本地修改的内容同步到远程版本库上:  git push origin master  (origin 表示远程版本库的Git地址,master表示同步到主分支)

      如何将远程版本库上的修改同步到本地:  

                方式一: git fetch origin master 之后,同步下来的代码会先放到一个origin/master 分支上,

                    再执行 git diff origin/master 可以查看远程版本库上修改了哪些东西,

                    之后执行  git merge origin/master 就可以合并到主分支上了

                方式二: git pull origin/master   一步实现代码同步到本地 (将fetch 和 merge 两步放到了一起)

四、Git 将代码托管到GitHub上(实战)

  步骤简述:

    1、到 GitHub的官网地址 https://github.com/ 注册一个账号

      Sign up for GitHub ----> Create an account  ----> Finish sign up

    2、创建版本库

      登录之后 找到New Repository按钮 点击按钮

        Repository name : 项目名

        项目类型: Android

        开源协议: 推荐 Apache Liscense 2

      创建后可以得到 版本库主页地址: 如: https://github.com/用户名/项目名

    3、开始关联

       进入Git bash 执行命令: git clone https://github.com/***(这里是版本库主页地址)

       执行成功后 文件目录的下就多出了个   子文件夹 (全小写的项目名)  其中包含隐藏的 .git 文件夹

        将里面的文件复制到项目根目录下 再把多余的子文件夹干掉

          即可执行项目 同步到远程版本库的操作了

     4、开始同步

      git add .

      git commit -m "First Commit "

      git push origin master 

SVN(集中式)


  缺点: 服务器压力大,不适应开元大项目,无服务器不工作

  loading...

Git 版本控制工具(学习笔记)的更多相关文章

  1. Git版本控制工具学习

    Git代码管理工具学习 分布式管理工具:git 相比较svn它更加的方便,基本上我们的操作都是在本地进行的. Git文件的三种状态:已提交,已修改,以暂存. 已提交:表示文件已经被保存到本地数据库. ...

  2. Git版本控制管理学习笔记1-介绍

    几乎所有的版本控制工具都是出于同样的目的:开发以及维护开发出来的代码,方便读取代码的历史,记录所有的修改.这里,介绍的是当前在开源社区内非常流行的版本控制工具Git.它是由Linus Torvalds ...

  3. Git版本控制管理学习笔记5-提交

        这个标题其实有些让人费解,因为会想这个提交是动词还是名称?     提交动作是通过git commit命令来实现的,提交之后会在对象库中新增一个提交对象.提交过程中会发生哪些变化,在上一篇笔记 ...

  4. Git版本控制管理学习笔记3-基本的Git概念

    为了更近一步的学习和理解Git的理念,这一节介绍一下Git中的一些基本概念. 基本概念 对象库图示 Git在工作时的概念 一.基本概念: 1.版本库:     Git的版本库就是一个简单的数据库,其中 ...

  5. Git版本控制管理学习笔记2--起步

    首先确保系统中已经安装了git,这里使用的linux系统. 一.命令行初步使用: 1.git命令: 列出它的选项和最常用的子命令.标准命令格式中,COMMAND代表的就是下面列出的子命令. [root ...

  6. Git版本控制管理学习笔记4-文件管理和索引

        可以认为使用Git时,我们会遇到3个空间:工作目录.索引.版本库.我们关心的,就是在新建.修改等操作时,这三者之间发生了怎样的变化.     笼统的讲,就是在工作目录下编辑,在索引中积累修改, ...

  7. Git版本控制工具(三)----远程仓库GitHub的使用

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  8. git版本控制工具(二)----本地版本库的常用操作

    ​[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...

  9. Git版本控制工具(一)----git的安装及创建版本库

    ​[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...

随机推荐

  1. 也说_T、_TEXT、TEXT、L

    本片文章转载自:http://www.cnblogs.com/sobe/archive/2011/03/14/1984188.html 百度或谷歌一下,有很多大牛早已经写过无数相关的文章说明这几个宏的 ...

  2. 如何写一个像btgoogle一样的12306泄露数据查询

    demo地址:http://www.btgoogle.com/12306/ 圣诞节,12306送给了我们一个大礼物.大约 14w的数据泄露, 看网上都沸沸扬扬的.开始也准备找一个数据库来看看,随后,我 ...

  3. 5个有用的.net profiling工具(转)

    我们有时需要对研发的软件程序进行性能测试,这时需要用到一些Profilers工具.下面列出5个有用的.net Profilers: 1. JetBrains dotTrace JetBrains do ...

  4. bzoj 3572: [Hnoi2014]世界树 虚树 && AC500

    3572: [Hnoi2014]世界树 Time Limit: 20 Sec  Memory Limit: 512 MBSubmit: 520  Solved: 300[Submit][Status] ...

  5. 3.2.3 使用Parameters动态生成where语句_JasperReports iRepor

    $P!{ParametersName}格式的SQL语句 来源:http://book.2cto.com/201306/24311.html#12732-hi-1-66926-020ef5b321fac ...

  6. 3G? 2G? 2.5G? 4G? 与 WIFI, GPRS,CDMA 3G无线上网

    首先说说无线上网有哪几种形式? WIFI, GPRS, CDMA 3G无线上网 1>wifi全称wireless fidelity,是当今使用最广的一种无线网络传输技术.实际上就是把有线网络信号 ...

  7. selectpicker下拉多选框ajax异步或者提前赋值=》默认值

    Bootstrap select多选下拉框赋值 success: function (data) { var oldnumber = new Array(); $.each(data, functio ...

  8. android studio 偶记

    修改项目名称 如果仅仅改了文件夹的名字,则会出现引用问题,相应的如下文件都要做相应的修改: 1. package name 要做相应调整 2. settings.gradle ,中要修改相应的moda ...

  9. flexPaper +swftools实现文档在线阅读

    网上已有很多FlexPaper仿百度文库的一些文章,园子里也有很多大牛的详细教程. 结合这次做的例子,在这里详细记录一下使用Flexpaper实现仿百度文库的效果,及自己在跟着园子里的教程做的时候,遇 ...

  10. 一起啃PRML - 1.2.3 Bayesian probabilities 贝叶斯概率

    一起啃PRML - 1.2.3 Bayesian probabilities 贝叶斯概率 @copyright 转载请注明出处 http://www.cnblogs.com/chxer/ 这一节简单讲 ...