美文网首页
Git相关内容

Git相关内容

作者: 喑宝儿 | 来源:发表于2021-06-01 18:06 被阅读0次
    1、版本控制系统

    (1)本地版本控制系统;

    (2)集中化的版本控制系统(客户端是最新的版本)

    • eg:SVN:不支持离线提交版本更新;中心服务器崩溃,所有人无法正常工作;版本数据库故障后,所有更新历史记录会丢失);

    (3)分布式版本控制系统(基于服务器、客户端的运行模式,去中心化)(eg:Git)

    • 客户端是服务器的完整备份
    • 客户端断网后仍支持离线本地提交版本更新
    • 服务器故障或损坏,可用人一个客户端的备份进行恢复
    2、SVN与Git记录的比较

    (1)SVN的差异比较

    存储的是一组基本文件和每个文件随时间逐步累积的差异(即记录每一次的差异)。节省磁盘空间,耗时且效率低。版本切换时,需要去掉部分差异

    (2)Git的记录快照

    在原有的文件版本基础上生成一份新的文件,类似于备份。文件未修改的话,不重新存储文件,只保留一个链接指向之前存储的文件。占用磁盘空间大,版本切换非常快,切换时恢复目标版本的快照即可

    (3)Git的代码一般情况下都在本地进行提交,联网之后或者完成之后再推到中心服务器上

    3、Git中的三种状态:已修改、已暂存、已提交

    在工作区修改文件——将下次要提交的更改进行暂存——提交更新,找到暂存区的文件,将快照永久存在仓库中

    工作区——暂存区——仓库

    4、配置用户信息
    git config --global user.name "用户名"
    git config --global user.mail "邮箱"
    git config --list --global 查看所有的全局配置项
    
    5、git常用命令
    // 获取帮助信息
    git help config   |   git config -h 
    
    /** 获取git仓库的两种方式 */
    1、将尚未进行版本控制的本地目录转换为git仓库
    打开“Git bash”
    执行git init命令将当前的目录转化为git仓库
    2、从其它服务器克隆一个已存在的git仓库
    
    /* 显示文件暂存状态 */
    git status
    git status --short
    git status -s
    
    /* 跟踪一个文件,将文件添加至暂存区 */
    // 功能1:可以用它开始跟踪新文件
    // 功能2:将已跟踪的、且已修改的文件放到暂存区
    // 功能3:把有冲突的文件标记为已解决的状态
    git add 文件名
    
    /* 提交更新,写文件名,提交这个文件,不写文件名,提交所有的文件 */
    git commit (文件名) -m "描述"
    
    /* 撤销修改(只能撤销工作区的操作) */
    git checkout -- 文件名
    // 撤销工作区未暂存的所有修改
    git checkout .
    
    /* 一次性暂存多个文件 */
    git add .
    
    /* 从暂存区中移除对应的文件 */
    git reset HEAD -- 要移出的文件名称
    // 从暂存区移除多个文件
    git reset HEAD -- .
    git restore --staged <文件名>
    
    /* 跳过暂存区 */
    git commit -a -m "描述信息"
    
    /* 从git中移除文件 */
    // 从仓库中和工作区都移除
    git rm -f 文件名
    // 只从仓库中移除,工作区保留
    git rm --cached 文件名
    
    6、忽略文件(.gitignore,文件在忽略之前已经提交,那此文件将不会被忽略)

    (1)以#开头的是注释

    (2)以/结尾的是目录

    (3)以/开头防止递归(/TODO忽略当前目录下的TODO文件夹,subdir/TODO不会忽略其它文件夹下面的TODO)

    (4)以!开头的是取反(除了自身其它都忽略)

    (5)glob模式对文件盒文件夹进行匹配

    *        匹配0或多个任意字符
    [abc]    匹配任何一个列在方括号中的字符
    ?        只匹配一个任意字符
    [a-b]    从a到b之间的字符都可以匹配
    
    7、查看提交历史
    // 查看完整提交历史(当前版本之前),最近的在最上面按q键停止
    git log
    // 查看最近的n条提交历史
    git log -n
    // 让提交信息在同一行显示
    git log -n --pretty=oneline
    // 让提交信息在同一行显示,并自定义输出格式
    // %h(提交的简写哈希值)
    // %an(作者名字)
    // %ar(作者修订日期,按多久以前的方式显示)
    // %s(提交说明)
    git log -n --pretty=format:"%h | %an | %ar | %s"
    
    8、回退到指定版本
    // 在第一行查看所有的版本
    git log --pretty=oneline
    // 根据指定的提交ID,回退到指定版本
    git reset --hard <CommitID>
    // 在旧版本中执行此命令,查看命令的操作历史(当前版本之后的也能看到)
    git reflog --pretty=oneline
    // 再次根据最新提交的ID,跳转到最新的版本
    git reset --hard <CommitID>
    
    9、开源

    开源:不仅提供程序,还提供程序的源代码

    闭源:只提供程序,不提供程序源代码

    10、开源协议(拥抱开源:我为人人,人人为我)
    1、BSD
    2、Apache Licence2.0
    3、GPL
    具有传染性的一种开源协议,不允许修改后和衍生的代码作为闭源的商业软件发布和销售
    使用GPL的最著名的软件项目是:Linux
    4、LGPL
    5、MIT
    目前限制最少的协议,在修改代码后,需要有作者的许可
    使用MIT的软件项目有jquery&nodejs
    

    相关文章

      网友评论

          本文标题:Git相关内容

          本文链接:https://www.haomeiwen.com/subject/olhgsltx.html