共计 1787 个字符,预计需要花费 5 分钟才能阅读完成。
集成罕用的一些操作,不便疾速上手
本文首先简略介绍一些 git 的几个区域和区域之间的命令,而后是 git 中一个比拟重要的概念分支的相干操作,接着是打标签的一些相干内容,最初是对提交历史的一些查看和一些其余命令。
前置常识
Git 的区域分为 工作区、暂存区、本地仓库区、本地近程仓、近程仓库
关联近程仓库 如果还没有 Git 仓库,你须要 git init
如果你想关联近程仓库 git remote add origin https://github.com/xxxxxx # 是近程仓库的名称,通常为 origin
工作区(work directory):个别就是咱们我的项目的根目录。
git add files:把以后工作文件拷贝到暂存区域。
暂存区(stage):版本库中设立一个暂存区(Stage or Index),作为用来间接跟工作区的文件进行交互,工作区文件的提交或者回滚首选都是通过暂存区,而版本库中除了暂存区之外,文件的提交的最终存储地位是分支(Branch),在创立版本库的时候默认都会有一个主分支(Master)。
git commit:在暂存区域生成文件快照并提交到本地仓库。
本地仓库(repository):咱们在为我的项目增加本地库之后,会在工作区生成一个如下图所示的暗藏目录“.git”,.git 目录即为当前工作区的本地版本库
git push origin master
Remote:近程仓库,托管代码的服务器,能够简略的认为是你项目组中的一台电脑用于近程数据交换。
git status【查看当前工作空间状态】
分支
git branch xxx 创立一个新的分支
git branch 查看以后所在分支【* 示意以后】git checkout xxx 从以后分支切换某个分支
git checkout dev【切到 dev 次分支】git pull【获取 dev 分支变动, 合并抵触, 使本地 dev 次分支最新】git checkout master【先切到主分支 master 上】git merge dev【个别是 git merge dev, 将 dev 开发完的合并到 master 上】git push -u origin master【提交 master 分支到线上 master】
标签
罕用的标签想必大家都用过,用来标记和记录一些未实现的事件,其实在 Git 中也有标记
标签命令如下:
列出标签
git tag # 在控制台打印出以后仓库的所有标签
git tag -l‘v0.1.*’# 搜寻合乎模式的标签
打标签
git tag v0.1.2-light
切换到标签
与切换分支命令雷同,用 git checkout [tagname]
查看标签信息
用 git show 命令能够查看标签的版本信息:
git show v0.1.2
删除标签
误打或须要批改标签时,须要先将标签删除,再打新标签。
git tag -d v0.1.2 # 删除标签
参数 d 即 delete 的缩写,意为删除其后指定的标签
给指定的 commit 打标签
这须要你晓得某个提交对象的校验和(通过 git log 获取)。
补打标签
git tag -a v0.1.1 9fbc3d0
标签公布
通常的 git push 不会将标签对象提交到 git 服务器,咱们须要进行显式的操作:
git push origin v0.1.2 # 将 v0.1.2 标签提交到 git 服务器
git push origin –tags # 将本地所有标签一次性提交到 git 服务器
留神:如果想看之前某个标签状态下的文件,能够这样操作
git tag 查看以后分支下的标签
git checkout v0.21 此时会指向打 v0.21 标签时的代码状态,(但当初处于一个空的分支上)
查看历史
查看历史命令:
显示全副的日志信息:git log 不能观察曾经删除了的 commit 记录
显示 1 行日志信息:git log -pretty=oneline
显示 1 行的一部分:git log --oneline
显示全副信息:git reflog 能够查看所有分支的所有操作记录(包含(包含 commit 和 reset 的操作)
其余命令
查看配置 git config --list
检出到任意版本 git checkout a5d88ea
git rebase -i HEAD~4
这个命令,将最近 4 个 commit 合并为 1 个,HEAD 代表以后版本。将进入 VIM 界面,你能够批改提交信息。推送到近程分支的 commit,不倡议这样做,多人单干时,通常不倡议批改历史。回调到上一个版本 git reset --hard HEAD^
回退错了 后退 git reflog