最近在学习git,这边整理一下学习笔记,有不对的地方欢迎大家指正。
各处${…}表示实际使用中需要填写的参数
一、tag相关
tag即给当前的代码版本打上标签进行区分,我理解为版本管理。
git获取指定tag的版本
1.clonemaster上的代码
2.git checkout test—-表示切换到test分支
3.git checkout ${tagName}
获取当前的tag
git tag -l
给当前代码版本打tag
git tag -a ${tagName} -m 'Release Version' (-m参数后面跟的是对这个tag的说明,这个根据实际需要填写)
推送tag
git push origin ${tagname} (推送指定名字的标签)
git push origin –tags (推送所有新增的标签)
查看tag信息
git show ${tagName}
删除本地标签
git tag -d ${tagName}
删除远程标签(tag已经推送到远程仓库)
1.先删除本地标签
2.git push origin :refs/tags/v0.9 注意空格
对已经提交的历史版本打标签
git tag ${tagName} ${commitId}
二、分支相关
git切换到已有分支:
1.先clonemaster上的代码
2.然后git checkout test—-表示切换到test分支
git新建并且切换到分支
1.先clonemaster上的代码
2.然后git checkout -b test—-表示新建test分支并且进行切换
推送分支到远程仓库
git push origin 分支名(最好不要省略)
将当前分支推送到origin主机的对应分支。
查看远程分支
git branch -a
Git合并分支
git merge ${branchName}
git删除分支
git branch -d ${branchName}
查看分支合并详情
git log –graph –pretty=oneline –abbrev-commit
分支合并-禁用fast forward模式
git merge –no-ff -m "merge with no-ff” ${branchName}
丢弃一个没有合并过的分支
git branch -D${branchName}
指定本地分支与远程分支的连接,与远程分支建立关联
git branch –set-upstream-to=origin/dev dev
存在远程分支,在本地创建分支,与远程分支相对应
git checkout -b ${branchName} origin/${branchName}
三、其他
git一般使用流程
1.git clone
#有需要的话切换分支或者获取tag
2.git checkout ${branchName} origin/${branchName}
or
git checkout ${tagName}
#进行相关文件内容的变更
3.mkdir/git rm -rf /vim…
4.git add -A(将本地的变更提交到暂存区)
5.git commit -m “变更说明”
6.git push origin 分支名
#如果有需要则推送tag
7.git push origin –tags
查看当前origin
git remote -v
显示了可以抓取和推送的origin的地址。如果没有推送权限,就看不到push的地址。
查看当前工作区与版本库最新版本的区别
git diff HEAD –filename
让文件回到最近一次commit或add的状态
git checkout –${file}
撤销暂存区的修改
git reset HEAD ${fileName}
将本地库与远程库进行关联
git remote add origin git@github.com:*********.git
切换origin
git push –set-upstream origin dev
存储当前工作现场
git stash
查看存储的列表
git stash list
恢复存储的内容并且删除临时存储
git stash pop
删除远程库
git remote rm origin
本地关联多个远程库
git remote add 别名1 git@github.com:*****.git
git remote add 别名2 git@gitee.com:*****.git
别名可以自己取
建立一个本地仓库
1.新建文件夹test
2.cdtest
3.git init
git查看详细日志
git log –pretty=oneline
git克隆指定分支的代码
git clone -b
git版本回退:
在Git中,用HEAD表示当前版本,上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。
例如:
git reset –hard HEAD^—表示回退到上一个版本
从老版本回到新版本
git reset –hard 1094a (新版本的commitid)
git查看历史的commitid
git reflog
查看状态:
gitstatus
git工作原理图解(图片转自廖雪峰老师git教程)
stage=暂存区