git基础运用

git 基础运用

一、git文件状态

  在说git的文件状态前,首先要了解整个git的操作空间,git将空间分为工作区、暂存区、git仓库
    工作区是指存储在磁盘上供你使用修改的区域,一般就指从服务器克隆下来的数据
    暂存区是一个文件,保存了下次要提交的文件列表信息
    git仓库就是指本地仓库,保存了commit提交的各个版本,个人理解git仓库指的是.git/objects文件夹,    
      保存项目的元数据和对象数据库。

  git的文件状态有两种,追踪(track)和未追踪(untrack),追踪的意思是该文件已经纳入git的版本控制,git已经知道这个文件,未追踪是指该文件未纳入git的版本控制,git不知道这个文件,这是个新的文件。同时文件在被追踪到后又有三种状态,根据git的三个区间可以分为已提交(committed)、已修改(modified)和已暂存(staged)。怎么理解这三种状态和前两种状态?举个例子假如你初始化了一个git仓,里面什么都没有,创建一个新的a.c文件,这个文件属于untrack,使用git add后这个文件属于track并且暂存状态,然后git commit提交属于已提交状态,最后你再次修改这个文件属于已修改未暂存状态。
    已修改表示修改了文件,但是还没有保存到数据库
    已暂存表示对一个已修改的文件在当地版本做了标记,使之包含在下次提交的快照中
    已提交表示数据已经安全地保存在本地数据库中

二、git基础命令

git help <verb>,git <verb> --help,man git-<verb>这三个命令可以用来查询Git手册,-h可以查找精简手册。

git config是用来设置Git外观和行为的配置变量,通过三个不同的文件配置。下面的路径都是linux系统路径。
  1./etc/gitconfig文件:系统上的每个用户的通用配置,–system选项相关
  2.~/.gitconfig:当前用户配置,–global选项相关,~代表home路径
  3../.git/config:当前仓库的配置,–local选项相关
上述三个配置文件的额优先级依次递增,git config有很多选项设置在这就不赘述。
git init初始化git仓库

git clone从远程服务器克隆git仓库,后面接多种数据传输方式,https://、SSH等协议。

git add有两个功能,一个是追踪(track),后面接路径时,递归地追踪该目录下的所有文件。一个是把已跟踪的文件放到暂存区,可接文件名。

git status查看文件状态,不多赘述。

.gitignore有些文件无需纳入Git管理,也不希望出现在未跟踪文件列表。那么可以在.gitignore添加,git会忽略。值得注意的是.gitignore只对未跟踪的文件起作用,如果说之前已经被追踪的文件添加忽略是不会起作用的,最好在项目仓库建立时就创建.gitignore文件。具体的.gitignore文件规则请自己百度。

git diff不加参数,比较的是工作目录当前文件和暂存区文件之间的差异,也就是修改之后未暂存的变化。加参数--staged,比较的是已暂存的文件和最后一次提交的文件的差异。

git commit将暂存区的改动提交给本地版本库,--amend修改提交信息。

git rm从git中移除文件,如果直接在本地删除文件,在git中并不会完全删除,会显示"Changes not staged for commit"。运行git rm可以清楚该提示。值得注意对于已经放入暂存区的文件需要使用命令git rm -f。如果想在本地保存该文件,不想被git追踪可以使用git rm --cached。可以使用glob正则来提高匹配范围,详细看git的正则匹配方式。

git mv [] []移动文件位置,也可重命名文件。

git log不加参数按照时间先后列出所有的提交。git log -p 或者--patch列出每次提交的改动,加入-2限定显示几笔提交。git log --stat对每笔提交进行总结,列出修改了哪些地方等总结性的信息。git log --pretty可以使用不同的方式显示提交历史,pretty可以取多种值如oneline、short、full等其中git log --pretty=format:" "可以定制化格式输出,详细见文档。oneline 和 formatgraph结合时可以显示分支、合并历史。与下图中的参数结合可以过滤某些信息。
在这里插入图片描述
git reset回退版本,git reset HEAD <file>将暂存的文件回退成未追踪。如果想将文件回退到没修改的状态使用git checkout -- <file>

git tag打标签,打标签分为轻量标签和附注标签,轻量标签就是简单的标签只需要提供标签名不需要描述,使用git show <标签>显示标签也不会有额外的信息,使用命令git tag <标签名>。附注标签就是详细的标签,在git中使用一个完整的对象存储,使用git tag -a <标签名> -m <描述>。如果想对过去的提交打标签可以使用git tag -a <标签名> <散列值>。共享标签:将标签上传到远程服务器git push origin <标签名>git push origin --tags可以传送多个标签。删除标签:git tag -d <标签名>,要删除远程仓储的标签使用git push <remote> :refs/tags/<tagname>这个命令的含义是将:前的空白标签推送到远程标签,从而删除它;也可以使用git push <remote> --delete <tagname>删除。标签检出的detached HEAD问题不清楚

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值