Git基础与一些基本命令

                                                                                Git基础学习总结

  1. Git是一种版本控制工具,是记录一个或若干文件内容变化,保证多人协作不出问题
  2. 版本控制工具:diff、patch、RCS、CVS、SVN、Git
    1. Diff:比较两个文件或者目录之间的差异;记录差异;
    2. Patch:是diff的反向操作;根据差异和一个文件可以推出另一个文件内容;
    3. RCS:最早期的本地版本控制工具;
    4. CVS & SVN:集中式版本控制工具;狭窄的提交通道、数据安全性差(单点故障、黑客攻击);
      1. CVS:1985,不支持原子化操作,网络传输效率低;
      2. SVN:取代CVS,适合局域网;
    5. Git:Linus的第二个伟大作品,灵感来自BitKeeper,分布式版本控制工具;
  3. 集中式(脆弱的中央库):对服务器要求高,不安全,存在单点故障,备份极其重要,不适合开源项目,强调集中管理;
  4. 分布式(强势的分布库):提交为本地操作,数据全完整,每一部分都是完整的数据,安全性高,适合分布式开发,强调个体;
  5. SVN不适合领域:
    1. 跨地域的协同开发;
    2. 对待吗的干质量追求和代码门禁;
  6. Git不适合领域:
    1. 不适合Word等二进制文档的版本控制;因为:Git无锁定/解锁模式,故不能排他式修改
    2. 整体的读授权,不能将读授权精细到目录级别;解决方案:版本库按照目录拆分

 

小结:

  1. 版本控制工具的发展历史经过:原始人工维护状态,本地RCS,集中式如VCS、SVN和分布式如Git。
  2. 版本控制工具提供了协作开发的能力,借助它们我们可以回到任何时间的代码状态。
  3. 集中式版本控制工具,几乎所有的动作都需要服务器参与,并且数据安全性与服务器关系很大
  4. Git 是分布式版本控制工具,除了与服务器之前进行按需同步之外,所有的提交操作都不需要服务器

 

Git相关命令:

    1. 工程准备
      1. 工程准备 git init/git clone
      2. git lfs clone对二进制文件进行区别管理

 

    1. 查看工作区
      1. 查看工作区的修改内容—— git diff
      2. 查看工作区文件状态—— git status(学会看每一行的交互提示信息)

 

    1. 文件修改后提交推送
      1. 新增/删除/移动文件到暂存区—— git add/ git rm/ git mv

Git add . 一次性添加所有,(注意这个点)

 

    1. 提交更改的文件—— git commit
      1. git commit file_name –m “commit message” 提交文件同时附上提交信息
      2. 如果要一次性提交所有在暂存区改动的文件到版本库,可以执行:
      3. git commit –am “commit message”
      4. git commit – -amend (修改最近一次提交的信息,修改后会新生成一个节点)

 

    1. 推送远端仓库—— git push
      1. git push origin branch_name(origin是远端服务器的名字,可以用git remote查看,一般默认为origin,除非特殊修改)
      2. windows下面命令行的大小写不敏感

 

    1. 查看日志
      1. 查看当前分支上的提交日志—— git log
      2. Git log – -name-status 展示详细信息
      3. Git log -1 查看头一行日志
      4. Git reflog 查看最近的操作
      5. 参数很多,可以自行了解

 

    1. 分支管理
      1. 列出本地分支—— git branch
        1. *和绿色表示当前工作区所在分支
        2. git branch –r查看远端服务器上的分支,返回的分支名带origin前缀,表示在远端;
        3. git branch –a查看远端服务器和本地工程所有的分支

 

      1. 新建分支—— git branch / git checkout –b
        1. 相同点:
          1. git branch和git checkout –b都可以用于新建分支(默认基于当前分支节点创建)
        2. 区别点:
          1. git branch新建分支后并不会切换到新分支
          2. git checkout –b新建分支后会自动切换到新分支。
        3. 常用的新建分支命令格式:git branch new_branch_name / git checkout –b branch_name

 

      1. 删除分支—— git branch –d
        1. git branch –d branch_name
        2. git branch –D branch_name(强制删除)
          1. 删除服务器上的远程分支可以使用git branch -d -r branch_name,其中branch_name为本地分支名。
          2. 删除后,还要推送到服务器上才行,即git push origin : branch_name

 

      1. 切换分支—— git checkout
        1. git checkout branch_name
        2. 使用git checkout –f进行强制切换

 

      1. 更新分支—— git pull / git fetch
        1. git pull origin remote_branch:local_branch
        2. 如果远程指定的分支与本地指定的分支相同,则可直接执行git pull origin remote_branch
        3. git fetch:与git pull不同,git fetch在获取到更新后,并不会进行合并
        4. 常用的获取远端分支更新命令格式git fetch origin remote_branch:local_branch
        5. 如果远程指定的分支与本地指定的分支相同,则可直接执行git fetch origin remote_branch

 

    1. 撤销操作
      1. 强制回退到历史节点—— git reset
        1. 常用的工作区回退命令格式:git reset commit_id
        2. (可能会回退很多信息,错失很多重要信息)
      2. 回退本地所有修改而未提交的—— git checkout .(注意这个点)
        1. 谨慎操作
        2. 回退某个文件git checkout –filename
        3. 回退(检出)到某个提交版本:git checkout commit_id

 

    1. 分支合并
      1. 合并目标分支内容到当前分支—— git merge/git rebase
        1. git会将指定的分支与当前分支进行比较,找出二者最近的一个共同节点base,之后将指定分支在base之后分离的节点合并到当前分支上。分支合并,实际上是分支间差异提交节点的合并。
        2. git merge branch_name

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值