git的常用命令

最近看了git教程,这里整理一下git的相关命令。

//基本操作方面
git init		//将所在文件夹初始化为仓库
//仓库中的文件需要经过add和commit才能提交到仓库
git add <filename>
git commit -m "some information"	//-m是注释信息,提交成功的话,会输出some information
git status			//显示仓库当前的状态

//日志方面
git log				//像是从最近到最远的提交日志
git log --pretty=oneline	//简略显示提交日志
git log --graph			//查看具体的分支提交信息
git log --graph --pretty=oneline --abbrev-commit	//简略显示分支的提交日志

//回到指定版本
git reset --hard HEAD^		//回到前一个版本
git reset --hard HEAD^^		//回到前2个版本
git reset --hard HEAD~n		//回到前n个版本
git reset --hard id			//回到指定id的版本。首先这里的id所对应的记录必须存在,其次
//这里的id可以是真实存在的id的前一部分(不必写全,只要能区分出来就行)
git reflog				//显示出每一次执行的命令

//撤销和删除
git checkout -- <filename>	//把<filename>文件在工作区的修改全部撤销,这里有两种情况
//1. 文件自修改后还没有放到暂存区,现在撤销修改就回到和版本库一模一样的状态。
//2. 文件已经添加到暂存区,又做了修改,现在撤销就回到添加到暂存区后的状态。
git reset HEAD <filename>		//把add到暂存区中的文件撤销掉
rm <filename>		//删除某个文件
//如果误删,想要恢复
git checkout -- <filename>
//确认删除 这时候也可以不用rm 直接git rm
git rm <filename>
git commit -m "some info"

//远程仓库		这里还需要做一个无密登录,就是将自己设备的公钥放到远程仓库的指定地方
//将本地仓库关联到远程仓库。其次,origin是远程仓库名(可以自己取一个),后面是自己的账号。
add origin git@github.com:michaelliao/learngit.git
//第一次将本地仓库内容提交到远程仓库中
git push -u origin maseter
//由于远程仓库是空的,第一次推送master分支时,加上了-u参数,git不但会把本地的master分支内容推送到远程新的master分支。
//还会把本地分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
git push origin master		//将本地的master分支上的内容推送到远程仓库中
//clone仓库 也支持https
git clone git@github.com:michaelliao/gitskills.git
git clone https://github.com/ToBeAGoodProgrammer/gitforclone
git remote	//查看远程仓库信息	添加-v可以看到详细信息
git checkout -b branch-name origin/branch-name	//在本地创建与远程分支对应的分支
git pull	//下载当前分支最新的提交。如果推送失败,可以下载最新分支,进行编辑然后再次推送
//如果上面的命令显示no tracking information,则说明本地分支和远程分支的联接关系没有创建,需要使用以下命令
git branch --set-upstream-to=origin/dev dev	//将本地仓库的dev与本地的dev联接


//分支
git checkout -b dev 	//创建分支并切换到这个分支
//下面两个命令相当于上面的命令
git branch dev		//创建分支
git checkout dev		//切换到这个分支
git branch 	//列出所有分支,有*表示当前分支
git merge dev		//合并指定分支(dev)到当前分支
git branch -d dev		//删除分支(-d)	-D 是强力删除
git log --graph		//查看分支合并图
//Fast-forward 快进模式,也就是直接把master指向dev的当前提交。
//git merge dev就是快进模式,在这种模式下,删除分支后会丢失分支信息。
//如果强制禁用fast forward模式,git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息
git merge --no-ff -m "merge with no-ff" dev		//-m是因为生成了一个新的commit
//这时候,git log --graph 可以看到分支的信息
git stash 		//将当前的工作现场存储起来,等以后恢复现场后继续工作,现在git status查看工作区就是干净的
//恢复工作现场有2种方式
git stash apply		//这种方式stash内容并不删除,需要通过git stash drop来删除
git stash pop		//恢复的同时把stash内容也删除了
git rebase		//把分叉的提交历史整理成一条直线,看上去更直观,缺点就是本地的分叉提交已经被修改过了

//标签管理
//切换到需要打标签的分支上
git tag v1.0		//为该分支打上一个v1.0的标签
git tag 				//显示当前已有标签
//如果想要为过去某个commit操作打上标签,可以先找到该操作的id
git log --pretty=oneline --abbrev-commit
//然后
git tag v0.9 <id>
git show v0.9	//查看标签v0.9的信息
git tag -a v0.1 -m "version 0.1 released" 1094adb		//创建带有说明的标签,用-a指定标签名,-m指定说明文字。
//标签总是和某个commit挂钩,如果这个commit既出现在master分支,又出现在dev分支
//那么在这两个分支上都可以看到这个标签
git tag -d v0.1		//删除标签,这个标签还没有传输到远程仓库
git push origin v1.0		//推送指定标签到远程仓库
git push origin --tags		//一次性推送全部尚未推送到远程的本地标签
//删除远程仓库的标签
git tag -d v0.9
git push origin :refs/tags/v0.9

//配置别名
git config --global alias.st status //这时候git status==> git st

//配置文件
//配置git的时候,加上--global是针对当前用户起作用的,如果不加,那只针对当前的仓库起作用
//每个仓库的git配置都放在.git/config文件中
//当前用户的git配置文件放在用户目录下的一个隐藏文件.gitconfig中
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值