超全的git指令总结,来看看吧~

421 阅读4分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第1天,点击查看活动详情

超全的git指令总结

八月更文第一弹, 开始啦! 🍦

好久没写文章了,最近把近一年来项目中常用的一些git指令做了分类整理,基本能够适用绝大多数的使用场景了。我比较习惯于和vscode的git工具结合使用,效率加倍。在此推荐同时安装GitLens,能够方便的看到代码的提交记录。

简介就到此结束,接下来开始学习吧!

初始化

git init 初始化仓库
git config --global user.name "xxx" 全局定义用户信息个
git config --global user.email "xxx" 全局定义用户邮箱

拉取

git clone git-xxx-address 拉取仓库 git pull 拉取代码

提交

git add xxx 添加某个文件
git add . 添加所有文件
git commit -m 'xxx' 添加推送注释
git push orign master 推送到master分支

状态

git status 查看文件状态
git log 查看提交记录,退出英文状态下 Q
git reflog 可查看修改记录(包括git reset 的回退记录)
git log --pretty=oneline 查看当前分支的提交历史 里面包含 commit id

分支

git branch -a 查看项目所有分支
git branch -r 查看项目所有远程分支
git checkout 'xxx' 切换分支
git branch 打印出来所有的分支,以及当前所在分支
git checkout -b newBranchName 基于当前分支代码创建新分支:newBranchName,并切换到该分支;
git push origin newBranch:newBranch 推送本地分支到远程仓库
git branch -D xxxx 删除本地分支
// "-d" 如果该分支代码未合并到其他分支,将无法删除;
// "-D" 强制删除分支,不会出现任何提示;
git push origin --delete newBranch 删除远程分支
git remote update origin --prune 更新分支列表

暂存区

git stash 代码放进暂存区(未被commit的代码)
git stash apply 还原
git stash drop 清除最近一次的stash记录
git stash pop 还原并清除最近一次 stash
git stash list 查看暂存列表
git stash clear 清空所有 stash 的记录

远程仓库

git remote -v 显示所有远程仓库
git remote add xxx url 添加一个远程仓库
git remote rm name 删除远程仓库
git remote rename old_name new_name 修改仓库名
git remote show xxx 展示远程分支xxx详细信息

回退

📌01:
git log
git reset –hard HEAD ^ 回到上一个版本
( ^ 表示回到上一个版本,如果需要回退到上上个版本的话,将HEAD^改成HEAD^^, 以此类推。那如果要回退到前100个版本,这种方法肯定不方便,我们可以使用简便命令操作:git reset –hard HEAD~100 );

📌02:
git reflog
git reset –hard 版本号 回退到指定版本号

合并

git merge 合并分支branch
git merge --no-ff 合并分支branch
以上命令将指定分支合并到当前分支,但总会生成一个合并commit(即便这一合并操作可以快进)。当你需要在仓库的提交历史中标记合并事件时这一命令相当有用。

合并代码冲突

1.将原本修改代码放入暂存区
2.进行代码合并处理
3.将修改代码从暂存区取出并清理暂存区

标记

tag是git版本库的一个标记,指向某个commit的指针。
tag主要用于发布版本的管理,一个版本发布之后,我们可以为git打上 v.1.0.1 v.1.0.2 ...这样的标签。
tag感觉跟branch有点相似,但是本质上和分工上是不同的:
tag 对应某次commit, 是一个点,是不可移动的。
branch 对应一系列commit,是很多点连成的一根线,有一个HEAD 指针,是可以依靠 HEAD 指针移动的。
所以,两者的区别决定了使用方式,改动代码用 branch ,不改动只查看用 tag。
tag 和 branch 的相互配合使用,有时候起到非常方便的效果,例如:已经发布了 v1.0 v2.0 v3.0 三个版本,这个时候,我突然想不改现有代码的前提下,在 v2.0 的基础上加个新功能,作为 v4.0 发布。就可以检出 v2.0 的代码作为一个 branch ,然后作为开发分支。

创建

git tag tagName 创建本地tag
git tag -a v1.4 -m 'my version 1.4' 创建含附注类型的tag,-a为标签名,-m为附注信息
git push origin tagName 推送到远程仓库
git push origin --tags 若存在很多未推送的本地标签,你想一次全部推送的话:

以上是基于本地当前分支的最后的一个commit 创建的 tag ,但是如果不想以最后一个,只想以某一个特定的提交为tag ,也是可以的,只要你知道commit 的id。
git log --pretty=oneline 查看当前分支的提交历史 里面包含 commit id
git tag -a tagName commitId

查看

git show tagName 查看本地某个 tag 的详细信息
git tag 或者 git tag -l 查看本地所有 tag
git ls-remote --tags origin 查看远程所有 tag

删除

git tag -d tagName 本地 tag 的删除
git push origin :refs/tags/tagName 远程 tag 的删除

签出

git checkout -b branchName tagName 签出对应分支的tag