gerrit :账号密码输入
初次clone代码时,在生成密钥后,一定要手动输入账号密码
git config --global user.name "Your Name"
git config --global user.email "youremail@yourdomain.com"
gerrit :重复push
1.如果push到gerrit后,gerrit未审批,然后再次push,此时未审批的提交会默认再提交一次,而我们可以针对性的选择push即可避免重复push
gerrit :git push失败
有时你提交过代码之后,发现一个地方改错了,你下次提交时不想保留上一次的记录;或者你上一次的commit message的描述有误 这时候你可以使用git commit --amend,这个只能修改提交的信息,当然本质是commitid被修改了,如果需要修改已经提交过的文件,先将修改之后的文件add,然后使用git commit --amend修改commit注释信息,然后再重新push就可以了 常见错误有:
错误一:“Missing tree 7cb7d11cbf6b23f2c27f15ec17c58818d4a20522”
解决方案:git commit --amend 修改提示信息(commitid)
错误二:“change http://gerritXXX/c/coding-cloud-platform/+/525 closed)”
原因:525这个commit已经提交了。
解决方案:git commit --amend 然后重新push,然后发现有时候好用,有时候不好用,可能是rebase导致的,可以git log 找到本次提交的上次的commitId, Git reset --soft commidId,然后提交即可
gerrit :远程有冲突 Merge Conflict
例如如下错误提示:
error: Your local changes to the following files would be overwritten by merge:
xxx/xxx/xxx.php
Please, commit your changes or stash them before you can merge.
Aborting
可以采用如下解决方案:
1.手动将本地代码进行备份,git reset --hard HEAD丢弃到本地的修改(如果已经commit)重新拉取代码,再手动将备份更新提交 2.回滚到上一次提交然后
git stash
git pull
git stash pop
gerrit :常用命令
git pull // 拉取远程库的代码
git pull --rebase origin master // 强制把远程库的代码跟新到当前分支上面
git fetch // 把远程库的代码更新到本地库
git add .文件目录 // 把本地的修改加到stage工作区中
git commit -m '提交信息' // 把stage中的修改提交到暂存区
git branch 查看远程分支/全部分支
git checkout master/branch // 切换到某个分支
git checkout -b test // 新建test分支
git checkout -d test // 删除test分支
git merge master // 假设当前在 test 分支上面,把 master 分支上的修改同步到 test 分支上 git merge tool // 调用 merge 工具
git stash //把未完成的修改缓存到栈容器中
git stash list // 查看所有的缓存
git stash pop // 恢复本地分支到缓存状态
git blame someFile // 查看某个文件的每一行的修改记录()谁在什么时候修改的)
git status // 查看当前分支有哪些修改
git log // 查看当前分支上面的日志信息
git diff // 查看当前没有add的内容
git diff --cache // 查看已经add但是没有commit的内容
git diff HEAD // 上面两个内容的合并
git show commit-id // 显示某次commit-id的修改内容
git reset --hard HEAD // 撤销本地修改
git reset --hard commit-id // 撤销commit-id前面的所有修改
git apply test.patch //打包patch
命令参考: 简书作者:平常心的胖77