zoukankan      html  css  js  c++  java
  • Git知识点记录3-Git基础

    1.设置全局的用户名和邮箱属性
        git config --global user.name "Tom"
        git config --global user.email "Tom@163.com"
      设置文本编辑器
        git config --global core.editor "'E:Program Files (x86)EditPlusEditPlusEditPlusEditPlus.exe'"

    2.查看配置信息
        git config --list

    3.获取帮助
        git help <verb>
        git <verb> --help
        man git-<verb>

    4.获取git仓库
        4.1.初始化git仓库:
            git init
        4.2.克隆git仓库
            git clone <url>

    5.查看当前文件处于的状态
        git status
        如果你使用 git status -s 命令或 git status --short 命令,你将得到一种格式更为紧凑的输出。

    6.跟踪新文件或将已跟踪文件修改后, 放入暂存区
        git add ... -> 将指定文件添加到暂存区
        git add * -> 所有文件添加到暂存区

    7.查看已暂存和未暂存的修改
        git diff -> 此命令比较的是工作目录中当前文件和暂存区域快照之间的差异
        git diff --staged | git diff --cached -> 这条命令将比对已暂存文件与最后一次提交的文件差异
        git difftool -> 调用 emerge 或 vimdiff 等软件(包括商业软件)输出 diff 的分析结果, 比较工作目录中当前文件和暂存区域快照之间的差异
        git difftool --cached(staged) -> 调用 emerge 或 vimdiff 等软件(包括商业软件)输出 diff 的分析结果, 比较已暂存文件与最后一次提交的文件差异

    8.提交更新
        git commit
        git commit -m "提交信息说明" -> 将提交信息与提交命令放在同一行
        git commit -a -> Git 就会自动把所有已经跟踪过的文件暂存起来一并提交, 从而跳过 git add
        git commit -a -m "xxx" -> 不需要先执行git add添加文件到暂存区, 直接提交和添加暂存一起执行

    9.移除文件
        git rm    -> 从已跟踪文件清单中移除(确切地说,是从暂存区域移除), 并连带从工作目录中删除指定的文件
        git rm -f -> 如果要删除之前修改过或已经放到暂存区的文件,则必须使用强制删除选项 -f(译注:即 force 的首字母)
        git rm --cached xxx -> 想把文件从 Git 仓库中删除(亦即从暂存区域移除),但仍然希望保留在当前工作目录中
        git rm log/*.log -> 列出文件或者目录的名字, 此命令删除 log/ 目录下扩展名为 .log 的所有文件
        git rm *~ -> 该命令会删除所有名字以 ~ 结尾的文件。

    10.移动文件
        git mv file_from file_to -> 要在 Git 中对文件改名

    11.查看提交历史 和 限制输出长度
        git log    -> 按时间先后顺序列出所有的提交,最近的更新排在最上面
        git log --patch | git log -p -> 会显示每次提交所引入的差异
        git log -n -> 只显示最近的n次提交
        git log --stat -> 显示每次提交的简略统计信息(文件修改统计信息)
        git log pretty=oneline(short|full|fuller) -> 可以使用不同于默认格式的方式展示提交历史, =选项不同详尽程度不一
        git log pretty=format:"%h ..."    -> 定制记录的显示格式, ""中的内容就是格式, 具体百度

        git log --since=2.weeks -> 列出最近两周的所有提交
        git log --since(after) -> 仅显示指定时间之后的提交
        git log --until(before) -> 仅显示指定时间之前的提交
        git log --author -> 仅显示作者匹配指定字符串的提交
        git log --committer -> 仅显示提交者匹配指定字符串的提交
        git log --grep -> 仅显示提交说明中包含指定字符串的提交
        git log -S -> 仅显示添加或删除内容匹配指定字符串的提交

    12.撤消操作
        git commit --amend -> 如果上次提交以来未做任何修改(例如,在上次提交后马上执行了此命令),快照会保持不变,而修改的只是提交信息
        
        示例1: 本次提交之后发现提交信息写错了, 执行命令: git commit --amend, 前提是提交之后没做任何修改

        示例2: 本次提交之后发现有文件漏了暂存并提交, 执行如下命令:
            git add ** -> 先暂存文件
            git commit --amend -> 可以改也可以不该提交信息, 然后保存即可, 此文件就在之前的提交中了, 而且没有多余的其他提交记录

    13.取消暂存或工作空间的文件

        示例1: 修改了两个被追踪的文件, 执行了git add * 暂存了两个文件, 但是想分别作为两个独立的文件进行两次提交, 如何取消其中一个文件的暂存呢?
            其实git status命令就已经给出了提示:
                git status之后会发现有一个提示命令: use "git restore --staged <file>..." to unstage
            所以执行命令: git restore --staged <file>... 就可以取消暂存, 回到未暂存的状态

        示例2: 修改了文件, 但是还没有暂存, 不想保留想要撤回修改, 将它还原成上次提交时的样子
            其实git status 也已经给出了提示
                git status之后会发现提示命令: use "git restore <file>..." to discard changes in working directory
            所以执行命令: git restore <file> 就可以撤销修改了

    14.查看远程仓库
        git remote -> 如果想查看已经配置的远程仓库服务器可执行此命令, 会列出你指定的每一个远程服务器的简写,如果已经克隆了仓库,那么至少应该能看到 origin(Git给克隆的仓库服务器的默认名字)
        git remote -v -> 会显示需要读写远程仓库使用的 Git 保存的简写与其对应的 URL

    15.添加远程仓库
        git clone 命令可以自行添加远程仓库的, 但是这里是自己来添加, 命令:git remote add <shortname> <url> 添加一个新的远程 Git 仓库,同时指定简写(类似origin)

        示例1: git remote add demo-git https://github.com/Tome/git/demo-git.git
            现在你可以在命令行中使用字符串 demo-git 来代替整个 URL。如果你想拉取仓库中有但你没有的信息,可以运行 git fetch demo-git

    16.从远程仓库中抓取与拉取
        git fetch <remote> -> 从远程仓库中获得数据,会访问远程仓库,从中拉取所有你还没有的数据。 执行完成后,你将会拥有那个远程仓库中所有分支的引用,可以随时合并或查看

            如果你使用 clone 命令克隆了一个仓库,命令会自动将其添加为远程仓库并默认以 “origin” 为简写。 所以,git fetch origin 会抓取克隆(或上一次抓取)
        后新推送的所有工作。 必须注意 git fetch 命令只会将数据下载到你的本地仓库——它并不会自动合并或修改你当前的工作。 当准备好时你必须手动将其合并入你的工作。

    17.推送到远程仓库
        git push <remote> <branch> -> 分享你的项目时,必须将其推送到上游。

        git push origin master -> 只有当你有所克隆服务器的写入权限,并且之前没有人推送过时,这条命令才能生效, 否则被拒绝, 必须先拉取他人的推送合并

    18.查看某个远程仓库
        git remote show <remote> -> 查看某一个远程仓库的更多信息, 会列出远程仓库的 URL 与跟踪分支的信息,它告诉你正处于什么分支

        git remote show origin -> 查看远程仓库origin的信息

    19.远程仓库的重命名与移除
        git remote rename oldname newname -> 修改一个远程仓库的简写名

        git remote rename demo-git git -> 将之前远程仓库名的简写从demo-git改为git
        git remote remove demo-git 或 git remote rm demo-git -> 想要移除一个远程仓库demo-git

    20.打标签
        20.1.列出标签
            git tag (可带上可选的 -l 选项 --list) -> 在 Git 中列出已有的标签
            git tag -l "v1.8.5*" -> 只查询1.8.5系列的标签(按照通配符列出标签需要 -l 或 --list 选项)

        20.2.创建标签
            Git 支持两种标签:轻量标签(lightweight)与附注标签(annotated)
                ①轻量标签很像一个不会改变的分支——它只是某个特定提交的引用。
                ②而附注标签是存储在 Git 数据库中的一个完整对象, 它们是可以被校验的,其中包含打标签者的名字、电子邮件地址、日期时间, 此外还有一个标签信息
                ,并且可以使用 GNU Privacy Guard (GPG)签名并验证。 通常会建议创建附注标签,这样你可以拥有以上所有信息。但是如果你只是想用一个临时的标签
                ,或者因为某些原因不想要保存这些信息,那么也可以用轻量标签。

            附注标签:
                git tag -a v1.4 -m "my version 1.4" -> -m 选项指定了一条将会存储在标签中的信息。 如果没有为附注标签指定一条信息,Git 会启动编辑器要求你输入信息。

                git show 命令可以看到标签信息和与之对应的提交信息

            轻量标签:
                不需要使用 -a、-s 或 -m 选项,只需要提供标签名字
                git tag v1.4

                git show 命令可以看到标签信息和与之对应的提交信息
        
        20.3.后期打标签:
            也可以对过去的提交打标签。要在那个提交上打标签,你需要在命令的末尾指定提交的校验和(或部分校验和, git log可以查询):
            例如: git tag -a v1.2 9fceb02
            git show 可以查看

        20.4.共享标签:
            默认情况下,git push 命令并不会传送标签到远程仓库服务器上。在创建完标签后你必须显式地推送标签到共享服务器上。
            git push origin <tagname>  -> 推送某个标签
            git push origin --tags -> 要一次性推送很多标签

        20.5.删除标签
            git tag -d <tagname> -> 删除掉你本地仓库上的标签, 并不会从任何远程仓库中移除这个标签
            git push <remote> :refs/tags/<tagname> -> 从任何远程仓库中移除这个标签, 含义是,将冒号前面的空值推送到远程标签名,从而高效地删除它
            git push origin --delete <tagname> -> 更直观的删除远程标签的方式

        20.6.检出标签
            git checkout

    21.Git别名
        可以通过 gitconfig 文件来轻松地为每一个命令设置一个别名, 如下:
            $ git config --global alias.co checkout
            $ git config --global alias.br branch
            $ git config --global alias.ci commit
            $ git config --global alias.st status
        意味着,当要输入 git commit 时,只需要输入 git ci


  • 相关阅读:
    Docker容器启动时初始化Mysql数据库
    使用Buildpacks高效构建Docker镜像
    Mybatis 强大的结果集映射器resultMap
    Java 集合排序策略接口 Comparator
    Spring MVC 函数式编程进阶
    换一种方式编写 Spring MVC 接口
    【asp.net core 系列】6 实战之 一个项目的完整结构
    【asp.net core 系列】5 布局页和静态资源
    【asp.net core 系列】4. 更高更强的路由
    【Java Spring Cloud 实战之路】- 使用Nacos和网关中心的创建
  • 原文地址:https://www.cnblogs.com/no-celery/p/13230650.html
Copyright © 2011-2022 走看看