• Git的一些用法


    三. 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字母顺序确定, 排序没有很明确的意义;

    -- 列出所有的标签 :  

    [plain] view plaincopy在CODE上查看代码片派生到我的代码片
     
     
    1. git tag  

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

    [plain] view plaincopy在CODE上查看代码片派生到我的代码片
     
     
    1. git tag -l v1.*  




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

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

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

    创建标签 :

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

    [plain] view plaincopy在CODE上查看代码片派生到我的代码片
     
     
    1. git tag v2.0  

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

    [plain] view plaincopy在CODE上查看代码片派生到我的代码片
     
     
    1. git tag -a v2.1 -m 'first version'  


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

    [plain] view plaincopy在CODE上查看代码片派生到我的代码片
     
     
    1. git tag -s v2.1 -m 'GPG version'  

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

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

    以后再找原因;

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

    [plain] view plaincopy在CODE上查看代码片派生到我的代码片
     
     
    1. $ git log --oneline  
    2.   
    3. f1bb97a first commit  
    4.   
    5. git tag -a v3.1 f1bb97a  



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

    [plain] view plaincopy在CODE上查看代码片派生到我的代码片
     
     
    1. git tag -d v0.1  




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

    [plain] view plaincopy在CODE上查看代码片派生到我的代码片
     
     
    1. git tag -v v1.0  



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

    [plain] view plaincopy在CODE上查看代码片派生到我的代码片
     
     
    1. git push origin --tags  

    3. 分支和合并 

    (1) 查看现存分支

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

    [plain] view plaincopy在CODE上查看代码片派生到我的代码片
     
     
    1. git branch  


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

      

    (2) 创建分支

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

    [plain] view plaincopy在CODE上查看代码片派生到我的代码片
     
     
    1. git branch branch1  



    (3) 切换分支

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

    [plain] view plaincopy在CODE上查看代码片派生到我的代码片
     
     
    1. git checkout branch1  



    关于主分支和其它分支 : 

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

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

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

    .

    对比过程 : 

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

    [plain] view plaincopy在CODE上查看代码片派生到我的代码片
     
     
    1. git branch  

    -- 分支结果 : 

    [plain] view plaincopy在CODE上查看代码片派生到我的代码片
     
     
    1. branch1  
    2. master  

    切换到 branch1 分支 : 

    [plain] view plaincopy在CODE上查看代码片派生到我的代码片
     
     
    1. git checkout branch1  

    -- 切换结果 : 

    [plain] view plaincopy在CODE上查看代码片派生到我的代码片
     
     
    1. Switched to branch 'branch1'  

    查看 branch1 分支下的文件 : 

    [plain] view plaincopy在CODE上查看代码片派生到我的代码片
     
     
    1. ls  

    -- 查看文件结果 : 

    [plain] view plaincopy在CODE上查看代码片派生到我的代码片
     
     
    1. AndroidManifest.xml  ic_launcher-web.png   res  
    2. assets               libs                  src  
    3. bin                  proguard-project.txt  
    4. gen                  project.properties  


    创建一个文件 : 

    [plain] view plaincopy在CODE上查看代码片派生到我的代码片
     
     
    1. touch description_branch1.txt  


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

    [plain] view plaincopy在CODE上查看代码片派生到我的代码片
     
     
    1. git add description_branch1.txt  


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

    [plain] view plaincopy在CODE上查看代码片派生到我的代码片
     
     
    1. git commit -m 'add a description of branch1'  

    -- 提交结果结果 : 

    [plain] view plaincopy在CODE上查看代码片派生到我的代码片
     
     
    1. [branch1 7f5785e] add a description of branch1  
    2.  1 file changed, 0 insertions(+), 0 deletions(-)  
    3.  create mode 100644 description_branch1.txt  


    查看该分支下的文件 : 

    [plain] view plaincopy在CODE上查看代码片派生到我的代码片
     
     
    1. ls  

    -- 查看文件结果 : 

    [plain] view plaincopy在CODE上查看代码片派生到我的代码片
     
     
    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  


    切换回主分支 : 

    [plain] view plaincopy在CODE上查看代码片派生到我的代码片
     
     
    1. git checkout master  

    -- 切换分支结果 : 

    [plain] view plaincopy在CODE上查看代码片派生到我的代码片
     
     
    1. Switched to branch 'master'  
    2. Your branch is up-to-date with 'origin/master'.  

    查看主分支文件 : 

    [plain] view plaincopy在CODE上查看代码片派生到我的代码片
     
     
    1. ls  

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

    [plain] view plaincopy在CODE上查看代码片派生到我的代码片
     
     
    1. AndroidManifest.xml  ic_launcher-web.png   res  
    2. assets               libs                  src  
    3. bin                  proguard-project.txt  
    4. gen                  project.properties  



    .

     

  • 相关阅读:
    拓端tecdat|R语言分类回归决策树交互式修剪和更美观地可视化分析细胞图像分割数据集
    使用 Databricks 进行营销效果归因分析的应用实践【Databricks 数据洞察公开课】
    关于 Data Lake 的概念、架构与应用场景介绍
    基于EasyCV复现ViTDet:单层特征超越FPN
    使用Databricks+Mlflow进行机器学习模型的训练和部署【Databricks 数据洞察公开课】
    数据湖构建—如何构建湖上统一的数据权限
    团队管理|如何提高技术Leader的思考技巧?
    StarRocks X Flink CDC,打造端到端实时链路
    全文检索工具:第一章:SpringdataelasticSearch搜索
    Docker:第一章:Docker常用命令
  • 原文地址:https://www.cnblogs.com/benbentu/p/4950126.html
Copyright © 2020-2023  润新知