Git基础

Git

初次运行 Git 前的配置

第一个要配置的是你个人的用户名称和电子邮件地址

如果用了 --global 选项,那么更改的配置文件就是位于你用户主目录下的那个,以后你所有的项目都会默认使用这里配置的用户信息。如果要在某个特定的项目中使用其他名字或者电邮,只要去掉 --global 选项重新配置即可,新的设定保存在当前项目的 .git/config 文件里。

  • $ git config --global user.name “John Doe”
  • $ git config --global user.email johndoe@example.com
    

差异分析工具

  • $ git config --global merge.tool vimdiff

查看配置信息

  • $ git config --list

获取帮助

  • $ git help

    指的是想要查询的指令,如config,pull等

Git 基础

仓库操作

  • 取得项目的 Git 仓库

    • 在工作目录中初始化新仓库

      • $ git init
    • 文件想要纳入版本控制

      • git add index.html
      • git commit -m ‘这是第一个Git’
  • 从现有仓库克隆

    • git clone [url] [name]

      url指的是想要克隆项目的地址
      name指的是自定义新建项目的目录名称
      例如:xxxxxx.git robby

  • 记录每次更新到仓库

    • 检查当前文件状态

      • $ git status
    • 跟踪新文件

      • git add 文件

        • 文件已被跟踪,并处于暂存状态
    • 忽略某些文件

      • 创建一个名为 .gitignore 的文件

        • vim .gitignore
        $ cat .gitignore
            *.[oa]
            *~
        第一行告诉 Git 忽略所有以 .o 或 .a 结尾的文件。一般这类对象文件和存档文件都是编译过程中出现的
        第二行告诉 Git 忽略所有以波浪符(~)结尾的文件,许多文本编辑软件(比如 Emacs)都用这样的文件名保存副本
        
          - 所有空行或者以注释符号 # 开头的行都会被 Git 忽略。
          - 可以使用标准的 glob 模式匹配。
        
            glob 模式是指 shell 所使用的简化了的正则表达式。星号(*)匹配零个或多个任意字符;[abc] 匹配任何一个列在方括号中的字符(这个例子要么匹配一个 a,要么匹配一个 b,要么匹配一个 c);问号(?)只匹配一个任意字符;如果在方括号中使用短划线分隔两个字符,表示所有在这两个字符范围内的都可以匹配(比如 [0-9] 表示匹配所有 0 到 9 的数字)。
        
          - 匹配模式最后跟反斜杠(/)说明要忽略的是目录。
          - 要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反。
        
    • 查看已暂存和未暂存的更新

      • git diff
    • 查看已经暂存起来的文件和上次提交时的快照之间的差异

      • git diff --cached
  • 提交更新

    • git commit

      • 这种方式会启动文本编辑器以便输入本次提交的说明
    • git commit -m “提交说明”

      • 可以用 -m 参数后跟提交说明的方式,在一行命令中提交更新
  • 跳过使用暂存区域

    • git commit -a

      • Git 会自动把所有已经跟踪过的文件暂存起来一并提交,从而跳过 git add 步骤
  • 移除文件,从暂存区域移除

    • git rm 文件

    • 如果删除之前修改过并且已经放到暂存区域的话,则必须要用强制删除选项 -f

      • git rm -f 文件
    • 想把文件从 Git 仓库中删除,但仍然希望保留在当前工作目录中

      • git rm --cached 文件
    • 递归删除当前目录及其子目录中所有 ~ 结尾的文件

      • git rm *~
  • 移动文件

    • Git 中重命名了某个文件

      • $ git mv file_from file_to

查看提交历史

  • git log

    • -p 选项展开显示每次提交的内容差异

    • -2 则仅显示最近的两次更新

    • –stat仅显示简要的增改行数统计

    • –pretty 选项,可以指定使用完全不同于默认格式的方式展示提交历史

      • short

      • full

      • fuller

      • oneline

      • format定制要显示的记录格式

        • %H 提交对象(commit)的完整哈希字串
        • %h 提交对象的简短哈希字串
          
        • %T 树对象(tree)的完整哈希字串
          
        • %t 树对象的简短哈希字串
          
        • %P 父对象(parent)的完整哈希字串
          
        • %p 父对象的简短哈希字串
          
        • %an 作者(author)的名字
          
        • %ae 作者的电子邮件地址
          
        • %ad 作者修订日期(可以用 -date= 选项定制格式)
          
        • %ar 作者修订日期,按多久以前的方式显示
          
        • %cn 提交者(committer)的名字
          
        • %ce 提交者的电子邮件地址
          
        • %cd 提交日期
          
        • %cr 提交日期,按多久以前的方式显示
          
        • %s 提交说明
          

撤消操作

  • $ git commit --amend

    此命令将使用当前的暂存区域快照提交。如果刚才提交完没有作任何改动,直接运行此命令的话,相当于有机会重新编辑提交说明,但将要提交的文件快照和之前的一样。

  • 取消已经暂存的文件

    git status 的命令输出

    “Changes to be committed” 下面括号中有提示

  • 取消对文件的修改(慎用)

    • git checkout – 文件

远程仓库的使用

  • 查看当前的远程库

    • git remote

      • origin默认使用这个名字来标识你所克隆的原始仓库
    • git remote -v

      • 显示对应的克隆地址
  • 添加远程仓库

    • git remote add [shortname] [url]
  • 从远程仓库抓取数据

    此命令会到远程仓库中拉取所有你本地仓库中还没有的数据

    • git fetch [remote-name]

      • 手动合并
    • git pull

      • 自动抓取数据下来,然后将远端分支自动合并到本地仓库中当前分支(nice)
  • 推送数据到远程仓库

    • git push [remote-name] [branch-name]

      remote-name服务名称
      branch-name分支名称
      例:git push origin master

  • 查看远程仓库信息

    • git remote show [remote-name]
  • 远程仓库的删除和重命名

    • git remote rename 旧 新

打标签

  • 列显已有的标签

    • git tag
  • 新建标签

    • 轻量级的(lightweight)git tag

      • 轻量级标签就像是个不会变化的分支,实际上它就是个指向特定提交对象的引用
    • 含附注的(annotated)git tag -a

      • 实际上是存储在仓库中的一个独立对象,它有自身的校验和信息,包含着标签的名字,电子邮件地址和日期,以及标签说明,标签本身也允许使用 GNU Privacy Guard (GPG) 来签署或验证

      • 签署标签git tag -s

        • 如果你有自己的私钥,还可以用 GPG 来签署标签
      • -m 选项则指定了对应的标签说明

    • 验证标签

      • git tag -v [tag-name]
    • 后期加注标签

      • 先查: git log --pretty=oneline
      • 再加入:git tag -a v1.2 校验符
    • 分享标签

      默认情况下,git push 并不会把标签传送到远端服务器上,只有通过显式命令才能分享标签到远端仓库。其命令格式如同推送分支,运行 git push origin [tagname] 即可

      • 分享一条:git push origin [tagname]
      • 分享全部:git push origin --tags
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值