Rubin's Blog

  • 首页
  • 关于作者
  • 隐私政策
享受恬静与美好~~~
分享生活的点点滴滴~~~
  1. 首页
  2. Git
  3. 正文

Git命令大全

2021年 4月 19日 814点热度 0人点赞 0条评论

目前的项目版本管理,Git占主要地位。目前市面上Git的可视化工具也比较多,使用起来也很方便。但是,一些关键的Git命令,我们还是要熟练掌握的。

以下就是我整理的Git比较常用的命令以及使用说明:

  • git commit -m 'message' Git提交。在条件允许的情况下,他会将当前版本与仓库的上一个版本进行对比,把差异打包生成一个新的提交记录
  • git branch <branch-name> <ref> <ref>不填默认Git在当前分支上复制一个新的分支出来。<ref>可以是任何可以到达的节点,例如分支名称,提交ID,当前分支的HEAD的所在位置,可以利用HEAD~<num>或者HEAD^赖在分之树上移动来选取节点,也可以利用HEAD^2来选取两个父节点的合并父节点
  • git checkout <-b> <your-branch-name> <origin-branch-name> Git切换到某一个分支。加上-b会创建一个新的本地分支并赋予后面跟的分支名称并切换到该分支。如果加上origin-branch-name参数,会从远程仓库拉取对应分支复制一个新的命名为your-branch-name的本地分支并切换到该分支,该分支会自动追踪远程分支(也就是自动关联该远程分支)
  • git checkout <commit-ID> | <branch-name> | HEAD^ | HEAD~<num> Git将HEAD分离并指向对应的提交记录的ID。正常情况下,分支的志向顺序是HEAD->branch->commit ID,命令执行后指向将变成HEAD->commit ID。第二种写法是分离出当前分支的HEAD并指向当前提交记录的父节点,写一个^就是向上移动一次,写两个就是向上移动两次,以此类推...。第三种写法是不想写太多的^,HEAD会从当前分支分离出来并向上移动num个提交记录
  • git merge <branch-name> Git会把branch-name分支上面所有的提交记录合并到当前分支
  • git rebase <branch-name> <to-branch-name> Git会把branch-name上所有的提交记录复制到<to-branch-name>(不填默认当前分支)上,并把<to-branch-name>所做的提交放在最后,形成一个线性提交记录,并自动检出<to-branch-name>节点
  • git branch -f <branch-name> HEAD~<num> | <commit-ID> Git会把branch-name分支强制指向HEAD的向上num次的父提交记录或者对应ID的提交记录处
  • git reset HEAD~<num> | HEAD^ Git会把当前分支撤销到对应设置的父提交记录上(num(不写默认为1)是几便向上移动几次或者有几个^便向上移动几次,即撤销对应设置的提交)。此命令执行之后,对应撤销的提交所对应的更改还存在,只是回退到了未加入暂存区状态
  • git revert HEAD Git会把当前分支撤销到当前提交记录的父提交记录上。与reset的区别是,reset只是撤销了本地更改并不会对远程仓库有影响,revert会生成并指向一个新的记录,这个新记录与我们要回退到的提交记录是一样的,这样我们就可以把更新推送到远程仓库与别人分享了
  • git cherry-pick <commit-ID>... Git会把对应的提交记录复制到当前所在位置(HEAD)的下面,并指向最后的提交记录
  • git rebase -i(--interactive) HEAD^ | HEAD~<num> Git会打开一个UI界面,此UI界面你可以把num个父提交进行重新排序、删除提交或者合并提交操作,在UI界面编辑完成之后,Git会按照编辑结果进行提交记录的复制并指向最后的提交记录
  • git commit --amend Git会忽略本次提交,将本次提交的内容合并进上一次的提交记录上。这个命令的主要用法是上一次提交有错误或者有遗漏,而又不想回退再重新提交,便可以使用该命令给上一次提交打一个补丁
  • git tag <tag-name> <commit-ID> Git在commitID处打一个名称为tag-name的标签,该标签会永久指向该提交记录
  • git describe <ref> <ref>可以是任何能被Git识别成提交记录的引用,如果你没有指定的话,Git会以你目前所检出的位置(HEAD)。它输出的结果是这样的:<tag>_<numCommits>_g<hash>。<tag>表示的是离<ref>最近的标签,<numCommits>时表示这个<ref>与<tag>相差有多少个提交记录,<hash>表示的是你所给定的<ref>所表示的提交记录哈希值的前几位
  • git clone <remote-address> Git会从远程仓库下载对应的仓库到本地,并自动检出master分支作为当前分支
  • git fetch Git会从远程仓库系在本地仓库中缺失的提交记录,并更新本地的所有远程分支指向最新的提交记录。但是,它不会改变你本地仓库的状态
  • git pull (--rebase) Git会从远程仓库下载所有本地仓库分支缺失的提交记录,然后将当前本地分支与远程分支做merge操作,来保证本地当前分支的提交记录是最新的。也就是说git pull命令默认就是git fetch 和 git merge <just-fetch-branch>的缩写,如果加上了--rebase,就是git fetch和git rebase <origin-branch-name>的缩写
  • git branch -u <origin-branch-name> <branch-name> Git会设置<branch-name>本地分支追踪<origin-branch-name>远程分支,如果我们当前就在该本地分支上,可以省略本地分支名称这个参数,即:git branch -u <origin-branch-name>
  • git push <remote> <place> 示例:git push origin master Git会将master本地分支的更改推送到远程仓库的master分支,如果我们本地分支的名称和追踪的远程仓库不同,我们使用:git push origin <source>:<destination> 来推送,例如:git push origin foo:master 就是将我们本地foo分支上面的提交推送到远程的master分支上。我们的推送位置均可以使用~<num>、^或者提交ID来确定推送到哪一次提交,例如:git push origin foo^:master 就是说把本地foo分支的上一次提交之前的所有提交推送到远程的master分支。注意:<remote> <place>参数和origin <source>:<destination>参数均适用于git fetch和git pull .只是git fetch的<source>:<destination>的方向相反!<source>是远程分支名,<destination>是本地分支名称。同时,如果本地分支不存在,则会自动创建本地分支。git pull就是git fentch和git merge的组合,不详细阐述
  • git push origin :<destination> Git将会删除远程分支<destination>,并将本地关联分支一起删除
  • git fetch origin :<destination> Git将会创建一个本地分支<destination>,作用同git checkout -b <branch-name>一致
  • git relog 查看美化后的Git提交日志
本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: Git
最后更新:2022年 6月 9日

RubinChu

一个快乐的小逗比~~~

打赏 点赞

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复
最新 热点 随机
最新 热点 随机
问题记录之Chrome设置屏蔽Https禁止调用Http行为 问题记录之Mac设置软链接 问题记录之JDK8连接MySQL数据库失败 面试系列之自我介绍 面试总结 算法思维
算法之递归 ZooKeeper之源码环境搭建 MySQL之Sharding-JDBC数据脱敏 问题记录之Chrome设置屏蔽Https禁止调用Http行为 SpringCloud之Stream消息驱动组件 Tomcat之HTTPS

COPYRIGHT © 2021 rubinchu.com. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

京ICP备19039146号-1