1.问题解决1:git commit --amend
本地使用 git merge 把dev分支合并到master分支之后,push master分支到Gerrit时,提示:error: failed to push some refs to 'ssh://xxxxxx@xxx.xxx.xxx.xxx:xxxxx/{project_name}'
分析:
no new changes 表示本地分支和远程分支代码没有差别,也就是没有新的提交。
Gerrit审核根据commit id 和 changeId来判断是不是新的提交,dev分支merge到master分支后,在master上可能没有生成新的commit id和changeId。也就是两个分支的commit id和changeId都相同,在master分支推送到Gerrit的时候,Gerrit判断内容相同,因此拒绝push。
解决:
方法一:通过git commit --amend生成新的changeId,然后再push;
方法二:在merge的时候加上--no-ff参数。
--no-ff:不使用fast-forward方式合并,合并的时候会创建一个新的commit用于合并。
2.问题解决2:------git pull –rebase
错误:error: Cannot pull with rebase: You have unstaged changes.
error: Additionally, your index contains uncommitted changes.
原因:如果有未提交的更改,是不能git pull的
解决:
先执行git stash,再执行git pull –rebase,最后再执行git stash pop
3.删除文件后需要 git add -A, 光 git add. 不行,区别如下:
git add -A 保存所有的修改
git add . 保存新的添加和修改,但是不包括删除
git add -u 保存修改和删除,但是不包括新建文件。
4.git push --set-upstream(-u) origin 推送本地到远端
1)git push --set-upstream origin my-feature-branch 将会将本地的 my-feature-branch 分支推送到远程的 origin 仓库,并且建立本地分支与远程分支的关联。(本地没同名分支,新建的一个) 2)假设你已经在远程仓库中有一个分支 feature-branch,你在本地创建了一个同名分支 feature-branch,但还没有建立它们之间的关联。你可以使用 git branch --set-upstream-to=origin/feature-branch feature-branch 来设置本地分支与远程分支的关联 3)在本地新建分支并推送到远程 git checkout -b test # 本地新建分支 git push origin test # 推送远程
5.git revert -m +[merge前的版本号] 撤销merge合并
6. 统计代码量
find . "(" -name "*.html" -or -name "*.js" -or -name "*.css" -or -name "*.vue" ")" -print | xargs grep -v "^$" | wc -l
更多插件统计前端见文档:www.cnblogs.com/miracle-lun…
7. 生成前端主目录
find . -print | sed -e ``'s;[^/]*/;|____;g;s;____|; |;g'
另生成tree目录的方法:www.noobyard.com/article/p-g…