基本操作命令
mkdir myGitProject ---创建工作空间
cd myGitProject ; git init / git clone https://github.com/rabbitmq/rabbitmq-codegen.git --初始化版本仓库
echo 'meng test' > my.txt ; git add my.txt 创建文件,将文件加入暂存区
git commit -m 'first commit' ----提交暂存区中的文件到仓库
提交记录查看
git log ---查看详细的提交记录信息,命令显示从近到远的提交记录
git log --pretty=oneline --显示精简的提交信息,在一行上
git log --pretty=oneline --abbrev-commit ---显示精简的提交信息,在一行上,显示七位的commit id
版本回退
git reset --hard HEAD^ --回退到上一版本
git reset --soft 70852d5 --回退到指定的版本,70852d5是commit id的前七位,回退的代码会被删除
git reset --hard 70852d5 --回退到指定的版本,70852d5是commit id的前七位,回退的代码不会被删除
查看用户在git上的操作记录
git reflog ---查看用户在git上的所有操作。这个命令的意义在于,假如你回退了版本,使用git log就会查看不对回退过得版本号,就像回退的版本消失了一样,使用git reflog查看用户的操作,展示的信息了包含了commit id,根据commit id就可以恢复版本啦。这个一根救命稻草哦。
查看当前版本库的状态
git status --查看当前版本库的状态
标签
git tag ---查看版本库的所有标签
git tag v_1.0 ---当前点打标签
git tag v_1.0 fdd8ab2 ---在指定commit id上打标签
git show v_1.0 ---查看指定标签名的标签
git tag -a v_1.0 -m "version 1.0 released" 1094adb ----打标签时加上说明
git tag -d v_1.0 ---删除标签v_1.0
git push origin v_1.0 ----将标签v_1.0同步到远程仓库
git push origin tags ---将本地版本库所有标签都同步到远程仓库
删除远程版本的标签:
git tag -d v_1.0 --先删除本地标签 git push origin :refs/tags/v_1.0 然后将本地删除的标签同步到远程仓库,达到删除远程仓库标签的目的。
常见问题及解决方案
1、某一次提交没有产生Change-Id
原因是,使用Gerrit,从Gerrit上Clone代码时,没有选中Clone with commit-msg hook,这样导致第一次提交不会产生Change-id,没有Change-Id提交代码到Gerrit就会报错如上。
解决方案:
1、使用git log查看提交日志,查找到对应的提交记录
2、回退到该版本,重新提交 git reset --soft 34fduif