zoukankan      html  css  js  c++  java
  • Git命令进阶

    GIT命令进阶

    1 文件忽略进阶:忽略已加入版本控制器的文件

    1.1 设置忽略排除

    1.1.1 忽略文件夹

    vim gitigorne 
    -------------------------------
    test/* # 忽略test文件夹下的所有文件
    *.class # 忽略以class结尾的所有文件
    

    1.1.2 设置反向配出

    !test/index.php # 排除忽略test文件夹下的index.php文件
    

    !表示要排除的意思,因此在.gitignore文件夹中加入!也可以理解为取反的意思

    1.2 忽略已提交的文件

    有的时候,可能一不小心把某一个原本应该忽略的目录提交到了版本控制器中,再使用 .gitignore 文件去忽略它的时候,发现无论如何都无法再次将其忽略,只好默默忍受;其实这是因为Git已经索引了该文件而导致.

    1.2.1 忽略已存在的文件和文件夹

    git rm --cached test2/index.php # 从换从中删除已提交的文件
    git rm -r --cached test3/ # 删除缓存中的文件夹
    

    接着我们需要将此修改提交,因为在忽略文件里已经忽略了该文件夹,所以在提交的时候需要注意加上-f参数,表示强制添加,参考命令如下:

    git add -f test3
    

    注意:

    1. 反向忽略应用场景是该文件夹大部分文件需要被忽略,只需要保留少部分的文件
    2. 忽略已存在的文件夹最后一步需要使用 -f 进行强制添加,否则会提示操作失败

    2. 比较分支差异: 展示连个分支的差异部分

    主要有两个部分:1. 比较分支的提交记录 2. 比较分支的代码差异。

    2.1 查看代码差异

    查看差异分为两种,具体的代码文件差异,和提交记录的差异,代码的具体差异分为3中方式:

    1. 查看了那些文件被修改了

    2. 查看某个文件的代码差异

    3. 查看全部代码差异

    2.1.1 查看文件差异

    我们想知道当前的分支与另外一个分支,有哪几个文件不一样,这个时候可以使用如下参考命令:

    git diff master dev --stat
    

    1586230102047

    2.2.1 显示文件具体修改

    通过前面的文件修改差异,知道了哪些文件被修改了,现在想知道具体被修改了什么内容

    git diff master develop 文件名
    

    2.2.2 显示全部文件的修改

    git diff master develop 
    

    2.2 查看提交记录差异

    通常查看提交记录的不同有下面几种方法:

    1. 查看A分支有但B分支没有的记录
    2. 单纯的比较两个分支的差异
    3. 显示某个记录在某些分支上是否存在。

    2.2.1 查看提交新纪录

    查看develop分支中有的记录而在master分支中没有的记录

    git log develop ^master
    

    2.2.2 单纯比较差异

    只查看两个分支记录有什么不一样

    git log branch1.. branch2
    

    2.2.3 查看各记录存在于那些分支上

    git log --left-right develop...test
    

    在图中,注意看我黄色框选的箭头符号,因为我们在命令中加入了-–left-right 所以左箭头 < 表示是 develop 的,右箭头 > 表示是 test 分支的。

    1. 基于当前的分支新建一个分支,并修改代码提交
    2. 使用git diff 分支1 分支2 的方式进行代码差异比较
    3. 使用git log 分支1..分支2 的方式进行提交记录的差异比较

    3. reset命令:将仓库记录和恢复指定历史位置

    git reset logdoe # 回退到指定的日志记录
    git reset HEAD^ # 撤销最近一次提交
    

    但是代码其实仍然是没有变化的,我们这里可以使用 git checkout 文件名来撤销文件修改,撤销修改后再通过 git status 去确认当前状态,参考命令如下

    git checkout index.php  && git status
    

    4. 删除过期分支

    1. 本地不存在,远程存在该分支,但不需要了
    2. 远程不存在,本地存在该分支,也不需要了
    # 清理远程分支
    git branch -a # 查看所有分支
    git push origin --delete dev # dev: 远程分支的名称
    # 清理本地分支
    git checkout -b test #创建新分支
    git push --set-upstream origin test # 第一次将本地分支推送到远程服务器
    git remote show origin # 查看远程仓库信息
    # 会拉去远程的分支信息与本地的信息做对于,发现远程分支已经删除,会对本地分支做标注
    git remote prune origin 
    git branch -vv # 查看关联失效的分支 [...: gone] 表示当前分支远程已经标记删除
    git branch -d test # 删除分支
    

    5. 配置多个远端仓库

    #查看当前远程地址
    git remote -v
    # 推送到远程仓库
    git remote add github https://github.com/wang7621422811/cpstats.git
    # 修改默认推送地址 -u
    git push -u github
    # 从制定仓库拉去代码
    git pull github
    # 删除远程地址
    git remote remove github
    # 同时推送多个地址
    git remote set-url --add origin https://....仓库地址
    
  • 相关阅读:
    在CentOS 7.6上安装VNC Server
    CentOS7.6 安装Docker
    CentOS 7.6 安装 Weblogic 12
    CentOS 7.6 安装Oracle 12c
    Spring MVC 使用介绍(五)—— 注解式控制器(一):基本介绍
    Spring MVC 使用介绍(四)—— 拦截器
    Spring MVC 使用介绍(三)—— Controller接口控制器
    Spring MVC 使用介绍(二)—— DispatcherServlet
    Spring MVC 使用介绍(一)—— 概述
    Spring 使用介绍(十三)—— Bean的生命周期
  • 原文地址:https://www.cnblogs.com/smallwolf/p/12652610.html
Copyright © 2011-2022 走看看