美文网首页
Git 常用命令

Git 常用命令

作者: 优雅的步伐 | 来源:发表于2019-04-29 21:11 被阅读0次

    git基本命令:

    • git status : 查看当前仓库中文件的状态。
    • git status -s : 文件状态的简写(M - 修改, A - 添加, D - 删除, R - 重命名,?? - 未追踪)。
    • git add <文件名> :将后方紧跟的文件进行暂存,以便commit使用。
    • git reset HEAD <文件名> : 将已经暂存的文件进行撤销,回到未暂存的状态。
    • git checkout -- <文件名> :撤销对尚未暂存文件的修改,该操作不可逆,慎用。
    • git commit -a : 对那些被修改的文件但尚未暂存和提交的文件进行暂存和提交。注意:对未暂存的新增文件无效。
    • git commit : 对暂存区的文件进行提交到本地仓库。
    • git push : 将本地仓库已经提交的内容发布到远端。

    下面新建一个新的项目具体操作下:
    新建项目GitTestDemo,

    1. git add

    把文件NewTestFile.rtf放入项目中,这时文件未被暂存


    image.png

    使用git status命令后,提示这些修改可以被提交,使用 git status -s命令后,可看出文件名前有??,说明文件未被暂存。用git add NewTestFile.rtf命令,再查看状态,状态由原来的红色变为绿色,并且标记由??变为A(A表示新增文件)

    image.png image.png
    2. git reset HEAD

    对已经暂存的文件NewTestFile.rtf执行git reset HEAD <文件名>操作,然后NewTestFile.rtf文件又回到了之前的未暂存状态

    image.png image.png
    3. git checkout -- <文件名>

    修改README.md文件,且不要暂存,使用git checkout -- README.md, 则被修改的README.md文件回到了之前的状态。git checkout -- <文件名>是不可逆的,因为其回滚的内容并没有在git中进行暂存和记录

    (注: 对新添加的文件不起作用,只对已添加并再次修改的文件起作用)

    image.png
    4.git commit -a

    修改README.md文件

    image.png

    执行git commit -a命令,把已修改的README.md文件进行添加和提交(注:git commit -a 只对 状态为M的文件有用,而对新增而未添加的文件是不起作用的)

    image.png image.png
    5.git push

    执行git push命令,把刚提交的内容推送到远程

    image.png

    SourceTree中和 gitbub上可以看到相关的内容被修改了


    image.png image.png
    查看和修改远端地址
    1.添加远端仓库地址
    1. 通过git remote -v命令查看当前仓库的远端地址

    2. 然后在通过git remote add远端仓库地址别名<url>来添加一个新的仓库地址。

    3. 接着再次对远端仓库的链接查看时,就会看到相应的新添加的仓库地址。

    4. 最后对README文件做修改,并push到刚添加的新的远端仓库origin_ssh上

    image.png image.png image.png
    2. 远端仓库地址上传和重命名
    1. 执行git remote -v命令来查看目前现有的远端仓库。
    2. 执行git remote rm origin命令删除origin的远端地址,删除后再查看,origin的仓库地址就没有了。
    3. 执行git remote rename origin_ssh origin,将origin_ssh重命名为origin。
    4. 执行git remote show origin命令来查看push到远端的那个分支。
    image.png

    git常用的命令操作

    1. git diff

    修改 README.md文件,
    执行git diff命令可以查看未暂存文件的修改情况。如果你的文件已经被添加到了暂存区存储起来了,那么git diff 就看不到已经被暂存起来的文件的修改内容了。

    image.png image.png

    但是如果使用了git add 命令后将其添加到了暂存区,可以通过执行git diff --cached或者使用 git diff --staged命令查看暂存文件的修改内容

    image.png
    2. 文件的移除
    image.png

    如果后悔删除,可进行撤销操作
    先执行git reset master 文件名命令,从暂存区将已暂存删除的文件进行撤销。

    image.png image.png

    在通过git checkout -- 文件名命令 将删除的文件进行恢复

    image.png image.png
    3. 通过git mv进行重命名
    image.png image.png image.png

    git mv NewTestFile.rtf RenameFile.rtf等同于以下三个命令:

    • mv NewTestFile.rtf RenameFile.rtf
    • git rm NewTestFile.rtf
    • git add RenameFile.rtf
    4.git log 相关

    (1) git log

    git log命令查看历史提交。
    commit: 每个提交的哈希值、作者(Author)、修改时间(Date)以及提交时的message组成

    image.png

    (2) git log -p

    使用git log -p -1可以查看最近一次提交的差异

    image.png

    使用git log -p可以查看所有的差异

    image.png

    (3) git log --stat
    git log --stat命令查看简化板的diff日志信息,会给出某个文件增加或减少的某个代码量,而不会给出详细的修改内容。

    image.png

    (4) git log --graph
    git log --graph命令可以让log 以更直观的方式来展示。左边的内容是相关提交的分支合并信息。(此项目目前只有一个master分支)

    image.png

    (5) git log --pretty
    git log --pretty=oneline可以让每次的commit在一行上显示,每一行就是一个commit,前面是commit所对应的hash值,后面是commit所对应的message。

    image.png

    我们可以用git log --pretty来定义格式显示,下方内容是“ git log --graph --pretty=format:"%h - %an, %ar : %s" ”命令的输出内容, --pretty=format:后边跟着的是格式化的字符串。其中 %h 表示简化版的Hash值, %an 表示作者名字(Author Name), %ar 表示多久以前提交的,%s 则是提交信息。

    image.png

    下方是格式的常用选项:


    image.png

    下方是git log常用选项:


    image.png
    5. git commit --amend

    使用git commit --amend 会与最后一次提交进行合并生成一个新的提交,之前的提交会被废弃掉。

    例子:
    先修改README.md文件,并commit


    image.png image.png

    再次修改README.md文件,这次想要追加到上次的commit,效果如下:之前的提交信息被覆盖了

    image.png image.png

    git log查看日志,从commit号来看,是一次新的提交,只不过是对上次提交进行合并,然后覆盖上次提交。

    image.png
    6. 打标签 - Tag

    创建的标签包括“轻量标签”(lightweight)和 “辅助标签”(annotated)。轻量标签之所以轻量是因为它只是一个特定commit的引用。而“辅助标签”是存储在git数据库中的一个完整对象。可以使用git tag -a 版本号 -m 'tag 信息'来创建“轻量标签”。下面的命令就是创建了一个轻量标签,并且使用git tag进行展示。

    给最后一次的提交打标签:执行git tag -a v1.0.0 -m "lightweight tag test"

    image.png image.png

    git show v1.0.0查看相关信息。包括:tag的创建人和创建信息以及打tag时的message,并且还会有该 tag所对应的commit的相关信息。

    image.png
    • 给之前的commit打标签

    如果想要给之前的某个commit打一个tag,那么只需要将commit号追加到打标签的命令后即可。如:git tag -a vx.x.x -m 'message' commit-hash

    执行git log --pretty=oneline

    image.png

    然后对 commit号为9597e9196aed2dceba33c241150db575fb0e5c11的提交补一个tag
    再次使用git log --pretty=oneline 来查看后补的tag信息。

    image.png
    • 将标签push到远端

    操作如下图:

    1.使用git remote show来查看所有的远端,此项目只有origin。

    1. 可以通过git push origin v1.0.0的命令格式将tag号为v1.0.0的标签push到远端origin, push成功后会提示在相应的远端创建了一个标签。
    2. 最后可以使用git push origin --tags命令将本地创建的所有tag推送到远端origin。

    下图省略了git push origin v1.0.0,直接用git push origin --tags命令把所有的tag推送到远程

    image.png

    查看github上已经有了刚才上传的两个标签v0.1.1和v1.0.0


    image.png
    • check tag
      在我们检出分支时,在分支的名字后面添加上相应的版本号,即可在该tag号所对应的分支上进行checkout。
      下面的操作就是:在tag v0.1.1所对应的分支上checkout了一个名为MyTagTestBranch的新分支。
      使用git show命令来查看当前分支的最近一次提交信息。
      image.png
    7. 配置Git别名

    在使用 git 命令时,如果你觉的 commit、checkout 等命令太长,每次输入全称太繁琐。在 git 中可以给一些命令添加一些别名,然后同这些别名来更为简洁的去操作git。下方就通过一个小示例来看一下git的别名。

    1.使用 git config --global aliase.zhuangtai 给 status 命令创建了一个 zhuangtai 的别名。
    2.在使用使用 git zhuangtai 命令时,就等同于 gitstatus 命令。

    3.当然一般不推荐用拼音,还是用其英文命令的的缩写比较好,比如 status 可以定义为 st, checkout 为 co,等等。下方又给 status 设置了其他的一个别名 st。
    同一个命令的别名是可以同时存在的,可以使用 git zhuangtai、也可以使用 git st。

    image.png
    • 查看所有设置的别名
    image.png
    • 使用oh-my-zsh插件使用提供的别名插件

    oh-my-zsh提供了特别全的Git别名的使用方式,安装完以后即拥有了好多好用的快捷使用方式。

    image.png

    参考链接:
    https://www.cnblogs.com/ludashi/p/8052739.html
    https://www.cnblogs.com/ludashi/p/8053382.html

    相关文章

      网友评论

          本文标题:Git 常用命令

          本文链接:https://www.haomeiwen.com/subject/fucfnqtx.html