• git的基本使用(一)


    引言

    git在安装之后,需要掌握一些基本指令用于对git的使用。本文开始记录一些git的基本常见指令。

    git基本使用

    查看当前文件状态

    查看哪些文件处于什么状态

    git status

    如果在克隆仓库后立即使用此命令,会看到类似这样的输出:

    $ git status
    On branch master
    Your branch is up-to-date with ‘origin/master’.
    nothing to commit, working directory clean

    现在的工作目录相当干净。当前目录下没有出现任何处于未跟踪状态的新文件,否则 Git 会在这里列出来。

    向暂存区添加文件

    在工作区所做的修改,添加之类的操作,结束之后向暂存区提交,需要使用指令:

    git add 文件路径

    将文件添加到暂存区,可以就可以对该文件进行跟踪。也可以将一个目录添加到暂存区,使用指令

    git add 目录路径

    git add 命令使用文件或目录的路径作为参数;如果参数是目录的路径,该命令将递归地跟踪该目录下的所有文件。

    比较文件

    尚未暂存的文件更新了哪些部分,不加参数直接输入:

    git diff

    此命令比较的是工作目录中当前文件和暂存区域快照之间的差异。 也就是修改之后还没有暂存起来的变化内容。
    尚未暂存的文件,指只在工作区做了修改,没有通过git add指令来向暂存区添加的文件。
    若文件已经添加到暂存区,可以用 :

    git diff --staged
    git diff --cached

    这两条命令将比对已暂存文件与最后一次提交的文件差异。–staged 和 --cached 是同义词。
    请注意,git diff 本身只显示尚未暂存的改动,而不是自上次提交以来所做的所有改动。 所以有时候你一下子暂存了所有更新过的文件,运行 git diff 后却什么也没有,就是这个原因。
    这里的git diff后面也可以跟文件名或者完整的文件路径名。

    git diff 文件名或者文件路径名
    git diff 文件名或者文件路径名 -staged #不知这个写法对不对,有待尝试
    git diff 文件名或者文件路径名 --cached #不知这个写法对不对,有待尝试

    提交文件

    现在的暂存区已经准备就绪,可以提交了。 在此之前,请务必确认还有什么已修改或新建的文件还没有 git add 过(向暂存区添加文件), 否则提交的时候不会记录这些尚未暂存的变化。 这些已修改但未暂存的文件只会保留在本地磁盘(没有执行git add指令的便没有被暂存)。 所以,每次准备提交前,先用 git status 看下,你所需要的文件是不是都已暂存起来了, 然后再运行提交命令 git commit:

    git commit -m “描述信息”

    这里采用将提交信息与指令放在同一行。

    跳过使用暂存区域

    提交变动时,需要先将修改添加到暂存区,然后提交到本地仓库,分两步进行,即:

    git add -A
    git commit -m “描述信息”

    但现在可以将者两部合并为一步来实现:

    git commit -a -m ‘描述信息’

    这样就跳过了使用暂存区域。这是因为 -a 选项使本次提交包含了所有修改过的文件。 这很方便,但是要小心,有时这个选项会将不需要的文件添加到提交中。

    移除文件

    要从 Git 中移除某个文件,就必须要从已跟踪文件清单中移除(确切地说,是从暂存区域移除),然后提交。 可以用 git rm 命令完成此项工作,并连带从工作目录中删除指定的文件,这样以后就不会出现在未跟踪文件清单中了。

    git rm 文件名或者文件路径名

    文件会从暂存区移除,同时在工作目录中也会被删除。
    如果把文件从 Git 仓库中删除(亦即从暂存区域移除),但仍然希望保留在当前工作目录中,可以使用:

    git rm --cached 文件名或者文件路径名

    忽略文件

    一般我们总会有些文件无需纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表。 通常都是些自动生成的文件,比如日志文件,或者编译过程中创建的临时文件等。 在这种情况下,我们可以创建一个名为 .gitignore 的文件,列出要忽略的文件的模式。下面是一个例子:

    $ cat .gitignore
    *.[oa]
    *~

    第一行告诉 Git 忽略所有以 .o 或 .a 结尾的文件。一般这类对象文件和存档文件都是编译过程中出现的。 第二行告诉 Git 忽略所有名字以波浪符(~)结尾的文件,许多文本编辑软件(比如 Emacs)都用这样的文件名保存副本。
    要养成一开始就为你的新仓库设置好 .gitignore 文件的习惯,以免将来误提交这类无用的文件。
    文件 .gitignore 的格式规范如下:
    1.所有空行或者以 # 开头的行都会被 Git 忽略。
    2.可以使用标准的 glob 模式匹配,它会递归地应用在整个工作区中。
    3.匹配模式可以以(/)开头防止递归。
    4.匹配模式可以以(/)结尾指定目录。
    5.要忽略指定模式以外的文件或目录,可以在模式前加上叹号(!)取反。
    星号(*)匹配零个或多个任意字符;[abc] 匹配任何一个列在方括号中的字符 (这个例子要么匹配一个 a,要么匹配一个 b,要么匹配一个 c); 问号(?)只匹配一个任意字符;如果在方括号中使用短划线分隔两个字符, 表示所有在这两个字符范围内的都可以匹配(比如 [0-9] 表示匹配所有 0 到 9 的数字)。 使用两个星号()表示匹配任意中间目录,比如 a//z 可以匹配 a/z 、 a/b/z 或 a/b/c/z 等。
    下面是一些例子:

    # 忽略所有的 .a 文件
    *.a
    
    # 但跟踪所有的 lib.a,即便你在前面忽略了 .a 文件
    !lib.a
    
    # 只忽略当前目录下的 TODO 文件,而不忽略 subdir/TODO
    /TODO
    
    # 忽略任何目录下名为 build 的文件夹
    build/
    
    # 忽略 doc/notes.txt,但不忽略 doc/server/arch.txt
    doc/*.txt
    
    # 忽略 doc/ 目录及其所有子目录下的 .pdf 文件
    doc/**/*.pdf
    

    重命名

    将git暂存区的文件进行重命名,可以使用:

    git mv 原文件名 新文件名

    查看指定范围内代码的改动者

    使用指令:

    git blame -L 起始行,终止行 文件的绝对路径

  • 相关阅读:
    吐血整理,服务端性能测试中间件-项目集成redis实战,一篇打通...
    JavaScript中的数值
    电线延长寿命小妙招
    Netty入门学习
    2023上海工程技术大学计算机考研信息汇总
    sed应用
    Fiddle日常运用手册(3)-对移动端产品进行数据接口抓包
    好用的工具
    python 时间加法 输出t分钟后的时间
    配电能效管理系统在纺织厂能耗成本的研究
  • 原文地址:https://blog.csdn.net/blqzj214817/article/details/127096330