Git各种命令,git init,git clone,git add,git status,忽略文件配置.gitignore,git diff,git commit rm

一丶git init

  • git init:初始化仓库,生成.git文件
  • 如果是在非空文件中执行,应该:使用以下命令,追踪文件,并初始提交
git add *.c
git add LICENSE
git commit -m 'initial project version'

二丶git clone

  • 使用url进行克隆
    git clone <url>
    
  • 克隆之后修改自己本地仓库名字
    git clone <url> 'your repo name'
    
  • 支持https://协议,git://协议,ssh协议,eg:user@server:path/to/repo.git

三丶git status

  • 查看状态(以及输出解释)

    git status #详细
    git status -s  #简短
    git status --short  # 简短
    #输出解释:分左右两栏:左边暂存区状态(前缀),右边为工作区状态
    #		   前缀A:新添加到暂存区文件
    #          前缀?? 新添加且未被跟踪
    #          前缀M:在工作区已修改但未暂存
    #          前缀MM:已修改,暂存后又进行了修改
    
  • 跟踪文件:

    git add
    

四丶忽略文件配置

规范:

  • 所有空行或者一#开头的行都会被忽略
  • 可以使用标准的glob模式匹配,他会递归的应用在整个工作区
  • 匹配模式以 “/”开头会防止递归,以其结尾指定目录
  • 要忽略指定模式意外的文件或目录,可以在模式前加!,表示取反

glob模式

  • (*)匹配零个或多个任意字符
  • [abc] 匹配任何一个列在方括号中的字符 (这个例子要么匹配一个 a,要么匹配一个 b,要么匹配一个 c)
  • (?)只匹配一个任意字符
  • [0-9] 表示匹配所有 0 到 9 的数字
  • (**)表示匹配任意中间目录:比如 a/ **/z 可以匹配 a/z 、 a/b/z 或 a/b/c/z 等

五丶git diff

  • 相对于git status 更加详细,可以具体显示哪些行发生了变化
    git diff # 显示未暂存的改动
    git diff staged # 显示已经暂存的改动
    git diff cached # 与上一个一样
    

六丶git commit

  • 提交会打开文本编辑器,进行注释的编写
  • 跳过暂存区域,省略add,但是过程是先一并暂存再提交
    # 默认会有最后一次git status 的输出
    git commit
    # 使用参数-v会将所更改的diff呈现在编辑器中
    git commit -v
    #跳过add
    git conmmit -a
    # 删除 先执行
    rm 文件名
    # 再执行,这样不会被纳入版本管理
    git rm 文件名
    #删除之前修改过或已放到暂存区的文件,git不可恢复
    git rm -f
    #删除暂存区文件,但仍在工作目录
    git rm --cached 
    # 移动文件或者重命名
    git mv name1 name2
    

版权声明:本文为weixin_44297716原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。