git常用命令汇总

简介

git是由linux之父Linus自己用C写的一个分布式版本控制系统。目地是为了管理Linux。

安装

window

详细步骤,可以看这个博文

linux

详细步骤,可以看这个博文

版本库

什么是版本库呢?版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。

创建版本库

创建一个版本库非常简单,首先,选择一个合适的地方,创建一个空目录:

$ mkdir test
$ cd test
//初始化版本库
$ git init

初始完成后目录下会出现 .git 目录。这个目录千万不要随便更改,它是git用于跟踪管理版本库的;
如果你使用Windows系统,为了避免遇到各种莫名其妙的问题,请确保目录名(包括父目录)不包含中文。

提交文件到版本库

提交改变到版本库:

$ git add .				//表示添加所有文件到暂存区
$ git add  test.txt		//test.txt是test文件夹下的的一个文件
$ git commit -m "这是一次提交"	//提交改变,并添加提交说明

git commit 加上 -a 选项,Git 就会自动把所有已经跟踪过的文件暂存起来一并提交,从而跳过 git add 步骤

取消已经在暂存区的文件

$ git reset HEAD filename

在这里插入图片描述
git reset HEAD one.txt
在这里插入图片描述

取消对文件的修改

$ git checkout -- filen

查看版本库状态

可以查看是否有文件变更的状态,比如是否加入暂存区,是否加入暂存区后没有提交

$ git status

我门修改test.txt文件后查看状态的结果:
在这里插入图片描述

查看具体的文件变更信息

$ git diff test.txt		//test.txt为想要查看的文件
  • 尚未缓存的改动:git diff
  • 查看已缓存的改动: git diff --cached
  • 查看已缓存的与未缓存的所有改动:git diff HEAD
  • 显示摘要而非整个 diff:git diff --stat
    在这里插入图片描述

查看版本提交日志

$ git log

在这里插入图片描述
很长的一段十六进制是commit id(版本号)
如果感觉打印的内容太多可以加上参数 --pretty=online
结果:
在这里插入图片描述

查看历史提交记录

即使做了版本回退也可以通过本命令找到提交版本id,从而回退到某个版本

$ git reflog

在这里插入图片描述

版本回退

在git中:HEAD 表示当前版本,HEAD^ 表示上一个版本 HEAD^^ 上上一个版本,以此类推,当回退版本比较多时可以用HEAD~100 表示回退到上一百个版本

$ git reset --hard HEAD^		//回退到上一个版本

在这里插入图片描述
也可以通过commit id(版本号)进行回退

$ git reset --hard  版本号		//版本号很长,只需要前几位就行,git会自动为我们匹配

在这里插入图片描述

删除文件

$ rm test.txt		//从本地工作区删除
$ git rm test.txt	//从暂存区和本地中删除,以后不会再跟踪此文件
$ git rm --cache [filename]		//从暂存区中删除,不会从本地删除
$ git commit -m "delete a file"	//提交改变

忽略某些文件

可以创建一个名为 .gitignore文件,用来添加忽略文件的模式
.gitignore 的格式规范如下:

  • 所有空行或者以注释符号 # 开头的行都会被 Git 忽略。
  • 可以使用标准的 glob 模式匹配。
    • 星号(*)匹配零个或多个任意字符;
    • [abc] 匹配任何一个列在方括号中的字符(这个例子要么匹配一个 a,要么匹配一个 b,要么匹配一个 c);
    • 问号(?)只匹配一个任意字符;
    • 如果在方括号中使用短划线分隔两个字符,表示所有在这两个字符范围内的都可以匹配(比如 [0-9] 表示匹配所有 0 到 9 的数字)
  • 匹配模式最后跟反斜杠(/)说明要忽略的是目录。
  • 要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反。
    例子:
# 此为注释 – 将被 Git 忽略
# 忽略所有 .a 结尾的文件
*.a
# 但 lib.a 除外
!lib.a
# 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
/TODO
# 忽略 build/ 目录下的所有文件
build/
# 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt
doc/*.txt
# 忽略 doc/ 目录下所有扩展名为 txt 的文件
doc/**/*.txt

远程仓库

查看当前的远程库

$ git remote
$ git remote -v		//显示对应的克隆地址

添加远程仓库

$ git remote add [shortname] [url]

从远程仓库抓取数据

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

$ git fetch [remote-name]

fetch 命令只是将远端的数据拉到本地仓库,并不自动合并到当前工作分支

推送数据到远程仓库

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

例:

$ git push origin master

查看远程仓库信息

$ git remote show [remote-name]

远程仓库的删除和重命名

重命名

$ git remote rename oldname newname

删除

$ git remote rm remote-name

标签

查看所有标签

$ git tag

查看一个标签

$ git show tagname

新建标签

//含附注的标签
$ git tag -a tagname -m state
//轻量级标签
$ git tag  tagname

将标签推送到远程仓库

//在推送时添加标签
$ git push [remote-name] [branch-name] [tag-name]
//在推送之后添加标签
$ git push [remote-name] [tag-name]
//一次推送所有标签
$ git push  [remote-name] --tags

分支

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值