首页 > 其他 > 详细

git-pro学习总结之git基础

时间:2021-02-20 23:59:14      阅读:37      评论:0      收藏:0      [点我收藏+]

git-pro学习总结之git基础

起步

版本控制系统VCS

  • 本地

    • RCS(补丁)
  • 集中化CVCS

    • CVS
    • Subvertion(SVN)
    • Perforce
  • 分布式DVCS

    • Git
    • Mercurial
    • Bazaar
    • Darcs
    • BitKeeper

git配置

  • 全局配置(服务端)
    /etc/gitconfig 或安装目录/mingw64/etc/gitconfig --system读写
  • 用户配置(客户端)
    /.gitconfig或/.config/git/config --global读写
  • 仓库配置
    当前仓库. git/config

git基础

获取仓库

  • 初始化(git init)
  • 克隆(git clone)

更新仓库

  • git status 检查文件状态
    加参数 -s 表示状态简览

    • 文件状态

      • untracked未跟踪
      • unmodified未修改
      • modified已修改
      • staged已暂存
    • 文件标记
      $ git status -s
        M README
      MM Rakefile
      A lib/git.rb
      M lib/simplegit.rb
      ? ? LICENSE.txt

      • 单M标记 文件被修改但未放入暂存区
      • 双M标记
        左侧M:文件被修改并放入了暂存区
        右侧M:文件被修改但未放入暂存区
      • A:新添加到暂存区文件
      • ??:新添加的未被跟踪文件
  • git add 跟踪新文件或暂存已修改文件

  • . gitignore 忽略文件

    • 格式规范

      • 所有空行或者以 # 开头的行都会被 Git 忽略

      • 可以使用标准的 glob 模式匹配

        • glob模式
          shell所使用码简化了的正则表达式
      • 匹配模式可以以(/)开头防止递归

      • 匹配模式可以以(/)结尾指定目录

      • 要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反

  • git diff 查看已暂存或未暂存的修改

    • 不加参数:未暂存的修改变化
    • --cached 或staged :暂存的修改变化
    • mkdir -p ../update && git diff c2 c1 -name-only | xargs -t -i{} cp -- parents {} ../update
      复制差异文件
  • git commit 提交更新

    • git commit -a 跳过使用暂存区域,暂存已跟踪修改文件并提交
  • git rm 移除文件
    rm:工作目录中删除但未暂存

    • --cached 从暂存区移除,标记为未跟踪
    • 不加参数 从工作目录删除且暂存,下次提交后不纳入版本管理
    • -f 删除前已修改且放入暂存区
  • git mv 移动文件

    • 相当于执行3个命令
      mv a b
      git rm a
      git add b

查看提交

  • git log -p -2 最近2次提交差异
  • git log --stat 文件修改简述
  • git log --pretty=oneline 每次提交信息在一行中描述,包含哈希值和提交说明
  • git log --since=2.weeks 最近2周内提交历史

撤销操作

  • git commit --amend 覆盖最近一次提交
  • git reset HEAD 撤销暂存文件
  • git checkout -- 撤销文件修改

使用远程仓库

  • 查看远程仓库

    • git remote -v
      显示读写远程仓库时使用的git保存的简写和其对应的url
    • git remote show [remote-name]
      显示指定远程仓库信息(分支等)
  • git remote add
    添加远程仓库

  • 从远程仓库抓取与拉取

    • git fetch [remote-name]
      拉取远程仓库所有分支数据,不会自动合并到本地分支
    • git pull [remote-name] [branch-name]
      拉取指定分支数据,并尝试自动合并到本地当前分支
  • git pull [remote-name] [branch-name]
    推送到远程仓库

  • git remote rename [old-name] [new-name]
    重命名运程仓库

  • git remote rm [remote-name]
    移除远程仓库

使用标签

  • 列出标签

    • git tag 列出全部标签
    • git tag -l ‘v1.8.5*‘ 列出指定匹配模式标签
  • git show v1.8.5
    显示标签

  • 创建标签

    • 附注标签(annoted)
      可添加额外标签信息

      • git tag -a v1.1 -m ‘my version1.0‘
        最近提交打标签
      • git tag -a v1.0 9fce b02
        指定提交打标签
    • 轻量标签(lightweigth)

      • git tag v1.2
  • git push origin [tagname]
    共享标签

  • git check -b [branchname] [tagname]
    签出包含指定标签名的分支

使用别名

  • 内部命令

    • git config --global alias. unstage ‘reset HEAD --‘
      ‘git reset HEAD --‘用unstage替换,下面2个命令等价
      git unstage fileA
      git reset HEAD -- fileA
  • 外部命令
    使用!前缀区分

  • git config --global alias.visual ‘!gitk‘

git-pro学习总结之git基础

原文:https://www.cnblogs.com/huangbg/p/14422507.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!