git使用学习(一)

由于时常需要使用git,在看pro git第二版的时候来自己理解熟悉一下。
首先需要理解git有三种状态:已提交(commited),已修改(modified),已暂存(staged)。
在这里插入图片描述
已提交指的是将本地仓库的代码执行了git commit之后的状态,已修改就是当前代码与git clone之后的代码相比有区别,此时若未执行git add则是已修改,执行了则是已暂存,处于暂存区。git clone下的代码处于未修改状态。git的指令其实就是围绕着三种状态的转变而存在的。
有两种获取Git项目仓库的主要方式。第一种是将已有项目或目录导入为Git仓库;第二种是从其它服务器克隆。
第二种的项目都是初始化过的,而第一种没有。此时就需要使用git init命令初始化,使用后会生成一个.git文件夹。
这个时候可以使用git status命令查看状态。此时可以看到文件变更的信息。(包括已追踪与未追踪的文件),此时的显示类似下图
在这里插入图片描述

如果文件很多的话看起来会很长,不利于阅读,这个时候可以加一点约束,使用 git status --short(git status -s)进行简约版的状态显示
在这里插入图片描述
??很形象,git不认识,此时表示未跟踪,M应该是对应Modefied,表示已修改,A表示添加到暂存区(为啥是A我没搞明白)。不过从图中可见,M出现左右两边两个位置,这两个地方的M意义不同,左边表示已经放入暂存区,右边表示已经放入暂存区。看上去好像是互斥,实际上表示的是,Rakefile文件之前已经提交到了暂存区,之后又修改了一次,但是还没有提交,因此出现了左右两个M。这样一想就很清晰了。
对于追踪文件,使用的是git add 命令,也可以使用git add .命令直接追踪全部的文件。但是可能需要剔除部分文件,这个时候有几种方式,一种是创建文件,类似后端的配置文件,另一种就是使用命令行去掉。
对于第一种,可以创建.gitignore文件,文件书写规范如下:

  • #用来注释,会和空行一起被git忽略
  • 标准的glob模式匹配(shell简化的正则表达式)
  • 以/开头防止递归
  • 以/结尾指定目录
  • 要忽略指定模式以外的文件或目录,可以在模式前加.上惊叹号(!) 取反。
    第二种命令方式。可以使用git rm --cache,这个类似与git reset 的作用,会将文件从暂存区删除,如果前一个命令没有–cache,还会将文件从工作目录中删除。
    git diff是一个类似与git status的命令,当然,只是我的感觉。git status是用来看文件的状态,而diff是来看文件修改的详情状态。但是!!!它默认的是查看未暂存的内容对比,如果需要对比暂存区,需要在后面添加约束,git diff --staged(git diff --cached)。
    git commit是用来提交,不过也可以在后面添加- a,将所有追踪的文件一键提交,但是这可能会包括不需要的文件,需要注意。
    移动文件,git mv。
    在项目开发中,查看提交历史也是常用的,使用的是git log
    在这里插入图片描述
    该命令有很多用的选项,其中一个比较有用的选项是-p,它会显示每次提交所引入的差异。与此同时,你也可以使用-2选项来仅显示
    有时候我们提交完了才发现漏掉了几个文件没有添加,或者提交信息写错了。此时,可以运行带有–amend选git commit – amend。这个命令会将暂存区中的文件提交。如果自上次提交以来你还未做任何修改(例如, 在上次提交后马上执行了此命令),那么快照会保持不变,而你所修改的只是提交信息。
    有时候需要将之前修改撤销,可以使用git checkout,但是这个命令比较危险,如果该文件从未添加到暂存区,那么修改的内容将不复存在,无法找回。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值