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


  • 相关阅读:
    Android防止手动添加的本地库文件被NDK工具清理掉
    将驱动编译进Linux内核
    cocos2d-x入门学习笔记——Hello world分析
    linux内核开发入门学习
    makefile工程管理
    GDB程序调试工具
    ios学习笔记_20140308
    Mac Os学习笔记-下载黑屏
    时间过得好快
    做一个关于预防接种的app
  • 原文地址:https://www.cnblogs.com/no-celery/p/13230650.html
Copyright © 2011-2022 走看看