美文网首页
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