三. Git的一些用法

1. .gitignore文件

屏蔽文件 : .gitignore文件是告诉Git哪些目录或者文件需要忽略, 这些文件将不被提交;

常用场景 : 写完代码后会执行变异调试等操作, 使用 .gitignore 文件将这些编译后的文件屏蔽, 这些文件不需要Git工具进行管理;

Android中的.gitignore : 在Android中 bin 和 gen 两个目录可以忽略;

.gitignore位置 : 项目根目录下;

过滤模式 : Git中的 .gitignore 中有两种模式,开放模式 和保守模式,保守模式的优先级要高于开放模式;

开放模式 : 设置哪些文件 活 目录 被过滤, 凡是在文件中列出的文件或者目录都要被过滤掉;

-- 过滤目录 : /bin/ 就是将bin目录过滤, 该文件下的所有目录和文件都不被提交;

-- 过滤某个类型文件 : *.zip *.class 就是过滤zip 和 class 后缀的文件, 这些文件不被提交;

-- 过滤指定文件 : /gen/R.java, 过滤该文件, 该文件不被提交;

保守模式 : 设置哪些文件不被过滤, 凡是列在其中的文件都要完整的提交上去;

-- 跟踪目录 : !/src , 该目录下的所有文件都要被提交;

-- 跟踪某类文件 : !*.java , 凡是java文件都要保留;

-- 跟踪指定文件 : !/AndroidManifest.xml , 该文件需要保留, 提交上去;

配置原则 : 一般情况下采用开放模式鱼保守模式共同使用;

eg : 一个目录下有很多目录和文件, 当我们只需要保留其中的一个文件的时候, 先用开放模式不保留这些文件, 然后用保守模式将这个文件留下来, 保守模式的优先级要高于开放模式;

2. 标签使用(Tag)

标签作用: 在开发的一些关键时期,使用标签来记录这些关键时刻, 例如发布版本, 有重大修改, 升级的时候, 会使用标签记录这些时刻, 来永久标记项目中的关键历史时刻;

查看标签: 列出的标签安装ASCII字母顺序确定, 排序没有很明确的意义;

-- 列出所有的标签 :

  1. git tag

-- 使用限定列出限定后的标签 :

  1. git tag -l v1.*

标签分类 : Git中的标签分为 轻量级标签(lightweight) 和 带注释的标签(annotated), 一般情况下推荐使用带注释的标签, 如果标签是临时的可以采用轻量级标签;

-- 轻量级标签 : 轻量级标签中的信息含量很少, 这种标签只代表某时刻代码的提交, 相当于指向这个提交的指针;

-- 带注释标签 : 这种标签是一种校验和, 包含标签名, 邮箱, 日期, 标签信息, GPG签名 和 验证, 它相当于一个对象, 封装了这些信息;

创建标签 :

-- 创建轻量级标签 : 这样的标签没有附带其它的信息;

  1. git tag v2.0

-- 创建带注释标签 : -m 后跟的是注释信息, 当使用git show v2.1的时候, 会显示这个注释信息;

  1. git tag -a v2.1 -m 'first version'


-- 创建GPG私钥的注释标签 :

  1. git tag -s v2.1 -m 'GPG version'

在本机上实验不成功 出现下面的错误 :

  1. Administrator@XRDPTJ9ILK6IWRA /storage/TabHost_Test (master)
  2. $ git tag -s v2.2 -m 'GPG version'
  3. gpg: error loading `iconv.dll': 找不到指定的模块。
  4. gpg: please see http://www.gnupg.org/download/iconv.html for more information
  5. gpg: keyblock resource `c:/Documents and Settings/Administrator/.gnupg\secring.g
  6. pg': file open error
  7. gpg: keyblock resource `c:/Documents and Settings/Administrator/.gnupg\pubring.g
  8. pg': file open error
  9. gpg: skipped "HanShuliang <13241153187@163.com>": secret key not available
  10. gpg: signing failed: secret key not available
  11. error: gpg failed to sign the data
  12. error: unable to sign the tag

以后再找原因;

-- 为之前的提交添加标签 : 先使用 git log --oneline 命令列出之前的提交, 会有一个七位的十六进制数进行标记, 使用git tag -a v3.1 f1bb97a 命令即可为这个提交添加标签;

  1. $ git log --oneline
  2. f1bb97a first commit
  3. git tag -a v3.1 f1bb97a

删除标签 : 使用命令 git tag -d 标签名 命令删除标签;

  1. git tag -d v0.1

验证标签 : 提交了GPG带注释标签才可以验证, 因为上面没有提交成功, 这里留下一个命令;

  1. git tag -v v1.0

共享标签 : 即将标签提交到GitHub中;

  1. git push origin --tags

3. 分支和合并

(1) 查看现存分支

查看现存分支 : git branch命令;

  1. git branch


从结果可以看出, 现在只有一个分支master;

(2) 创建分支

创建分支 : git branch 分之名称, 就可以创建一个分支, 创建完分支以后可以查看分支, 当前使用的分支会显示成为绿色, 前面带有 "*", 如果不是当前使用的分支, 显示的是白色, 并且没有 "*" 前缀;

  1. git branch branch1

(3) 切换分支

切换分支 : git checkout 分支名称, 切换分支以后, 在分支进行操作,文件的改变不会体现在master主分支中, 主分支改变, 会体现在其它分支中;

  1. git checkout branch1

关于主分支和其它分支 :

-- 分支编辑 : 现有两个分支 master 主分支, 和刚创建的branch1 分支, 切换到 branch1 分支, 在branch1 中创建一个文件 description_branch1.txt;

-- 其它分支文件不会影响主分支 : 然后在切换回 master 主分支, 发现没有description_branch1.txt文件, 创建一个文件 description_master.txt;

-- 主分支会影响其它分支 : 在切换回 branch1 分支中, 发现存在 description_master.txt文件;

.

对比过程 :

查看该工程项目分支情况 :

  1. git branch

-- 分支结果 :

  1. branch1
  2. master

切换到 branch1 分支 :

  1. git checkout branch1

-- 切换结果 :

  1. Switched to branch 'branch1'

查看 branch1 分支下的文件 :

  1. ls

-- 查看文件结果 :

  1. AndroidManifest.xml  ic_launcher-web.png   res
  2. assets               libs                  src
  3. bin                  proguard-project.txt
  4. gen                  project.properties

创建一个文件 :

  1. touch description_branch1.txt

添加这个文件到本地缓存 :

  1. git add description_branch1.txt

提交本地缓存 : 注意, 这里必须提交, 如果不提交缓存, 这个文件在主分支也会出现;

  1. git commit -m 'add a description of branch1'

-- 提交结果结果 :

  1. [branch1 7f5785e] add a description of branch1
  2. 1 file changed, 0 insertions(+), 0 deletions(-)
  3. create mode 100644 description_branch1.txt

查看该分支下的文件 :

  1. ls

-- 查看文件结果 :

  1. AndroidManifest.xml      libs
  2. assets                   proguard-project.txt
  3. bin                      project.properties
  4. <strong>description_branch1.txt</strong>  res
  5. gen                      src
  6. ic_launcher-web.png

切换回主分支 :

  1. git checkout master

-- 切换分支结果 :

  1. Switched to branch 'master'
  2. Your branch is up-to-date with 'origin/master'.

查看主分支文件 :

  1. ls

-- 查看文件结果 : 没有在 branch1 中添加的文件;

  1. AndroidManifest.xml  ic_launcher-web.png   res
  2. assets               libs                  src
  3. bin                  proguard-project.txt
  4. gen                  project.properties


.

Git的一些用法的更多相关文章

  1. Eclipse Git和sourceTree用法

    Eclipse Git和sourceTree用法 Eclipse Git: 提交代码到git: 1.team->Repository->pull 若没有冲突: 2.team->com ...

  2. git的基本用法——我的日常使用

    git的基本用法 一,前言 网上有太多关于git的用法说明,而我看得云里雾里,可能是本人比较愚笨.平常时间老问别人又觉得很不好意思,估计大多的同学们都是自己解决.后来我想到了买一本书,淘宝上git书籍 ...

  3. Git merge && git rebase的用法

    Git merge的用法: git merge Dev // Dev表示某分支,表示在当前分支合并Dev分支 git merge -m  “Merge from Dev”  Dev //-m可以加上m ...

  4. git clone、git pull和git fetch的用法及区别

    声明:码字不易,转载请注明出处,欢迎文章下方讨论交流.Git 常用命令速查表 最近在一个学习小组里学习AI的课程,我们所有的学习资料和homework都放在gitlab上.今天一个小队友从gitlab ...

  5. git日常基本用法

    git作为项目管理现在已经是越来越广泛应用,结合自己平时的一些基本操作加上git说明文档里面的一些补充,我总结了一下git的基本用法: mkdir project # 创建项目目录 cd projec ...

  6. github+git提交 基础用法

    git版本管理基本用法: 安装就不用说了 随便一搜 安装完 妥妥的.下边说的是在github从新建一个项目开始: 1.首先打开自己的github地址,如下图所示 点加号 选 New repositor ...

  7. 问题: 查看某个文件的修改记录| git log 高级用法

    参考文章: git查看某个文件的修改历史 5.3 Git log 高级用法 基本步骤 git log --pretty=oneline [文件名] git show [节点] git log 两周高级 ...

  8. Git stash 常见用法

    Git stash git stash这个命令可以将当前的工作状态保存到git栈,在需要的时候再恢复 1.1 git stash  保存当前的工作区与暂存区的状态,把当前的工作隐藏起来,等以后需要的时 ...

  9. Git push 常见用法

        Git push 在使用git commit命令将修改从暂存区提交到本地版本库后,只剩下最后一步将本地版本库的分支推送到远程服务器上对应的分支了,如果不清楚版本库的构成,可以查看我的另一篇,g ...

随机推荐

  1. cocoapods使用问题集锦(2017-04)

    今天公司在公司新发的电脑上边安装cocoapod发现容易忘记的几个问题,感觉需要记录下来. 问题一:系统默认ruby镜像的卸载命令行 -->     gem sources --remove h ...

  2. 303. Range Sum Query 范围求和系列

    Immutable [抄题]: Given an integer array nums, find the sum of the elements between indices i and j (i ...

  3. HTTP协议简析(二)

    HTTP响应也包含四部分内容: 响应行: 协议版本:HTTP/1.1 状态码:200 状态描述:对状态码的说明 响应头:用来规范数据,常用的有: server:服务器信息 date:响应的时间 las ...

  4. 我理解的MVCC内部实现原理

    MySQL InnoDB存储引擎,实现的是基于多版本的并发控制协议——MVCC (Multi-Version Concurrency Control) (注:与MVCC相对的,是基于锁的并发控制,Lo ...

  5. SQL Pretty Printer不错的sql格式化工具

    之前使用过sql server 2000的查询设计器和Toad for oracle 都有格式化Sql语句的功能,感觉很方便,尤其对于我这种有着轻微强迫症的人来说.当最近把SQL Server Man ...

  6. Mysql(Navicat for Mysql)怎么添加数据库

    1.首先打开Navicat for Mysql: 2.打开后界面如下图所示,双击连接localhost_3306: 3.连接后localhost_3306变成绿色,如下图所示: 4.选中下面任意数据库 ...

  7. 谈谈Spring 注入properties文件总结

    本篇谈谈Spring 注入properties文件总结,小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随小编过来看看吧 spring提供了多种方式来注入properties文件,本文做一个 ...

  8. Perl 学习笔记-正则表达式应用篇

    1.以 m// 进行匹配 如:  m/roger/ ,  /roger/ 是它的简写;  在说明  qw// 时可以选择使用任何成对的定界符, 对应m//匹配也可以, 如写成:  m(roger)   ...

  9. VS2012用正则表达式统计行数

    使用正则表达式: b*[^:b#/]+.*$

  10. CodeForces 681D Gifts by the List (树上DFS)

    题意:一个家庭聚会,每个人都想送出礼物,送礼规则是, 一个人,先看名单列表,发现第一个祖先 就会送给他礼物,然后就不送了,如果他没找到礼物 他会伤心的离开聚会!告诉你m个祖先关系, 和每个人想给谁送! ...