Git 常用命令

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

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,271评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,275评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,151评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,550评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,553评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,559评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,924评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,580评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,826评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,578评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,661评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,363评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,940评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,926评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,156评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,872评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,391评论 2 342

推荐阅读更多精彩内容

  • 配置 首先是配置帐号信息ssh -T git@github.com # 登陆 github 修改项目中的个人信息 ...
    guanguans阅读 718评论 0 3
  • 查看、添加、提交、删除、找回,重置修改文件 git help # 显示command的help git sho...
    Swiftor阅读 2,086评论 0 2
  • 开始: 1) 远程仓库相关命令 检出仓库:$ git clone git://github.com/jquery/...
    草根老张阅读 840评论 0 50
  • 一、 Git 常用命令速查 git branch 查看本地所有分支 git status 查看当前状态 git c...
    不变秃也能变强阅读 984评论 0 9
  • 来到大学之后,我发现我变了,脑子里时不时蹦出了想要脱单的奇怪想法 这还是我吗?我都不认识了。说真的,我在高中的...
    狮子狗liondog阅读 1,559评论 0 1