git使用详细总结

集成常用的一些操作,方便快速上手
本文首先简单介绍一些git的几个区域和区域之间的命令,然后是git中一个比较重要的概念分支的相关操作,接着是打标签的一些相关内容,最后是对提交历史的一些查看和一些其他命令。

前置知识

git使用详细总结_第1张图片

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使用详细总结_第2张图片

分支

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

你可能感兴趣的