常用命令与技巧(git/svn/vim等)


1、git

1.1、推代码

git checkout 文件名  ==============回退某文件修改 
git add 需要添加的文件路径
git commit -m "xxxxxx" ============生成conmit信息
git push origin HEAD:refs/for/master ==========将代码推送到分支master最新节点上

1.2、去除git add添加的文件

去除git add修改
git rm --cached “文件路径”,不删除物理文件,仅将该文件从缓存中删除;
git reset 也可以
git rm --f “文件路径”,不仅将该文件从缓存中删除,还会将物理文件删除

1.3、去掉每行结尾的^M

windows和linux行结尾差异导致

%s/^M//g  或者 %s/\r//g 然后esc退出 :wq保存退出
git diff 去掉匹配换行差异
git config --global core.whitespace cr-at-eol

1.4、git push 失败

push 失败:显示 error Missing tree

git push 后增加 --no-thin
https://opendev.org/opendev/git-review/commit/39cd763d5d3ae310b00e54f6fc24eba993ed57f5
这是gerrit的一个bug,丢失了git tree ,gerrit在推送是默认是采用thin,将发生的包降低到最低,忽略本地和远端文档公共部分。

 1.5、git status 只显示被跟踪文件

git status -uno   

 1.6、更新代码、回退代码

git pull --all    更新所有分支
git pull origin xxxx 更新远端分支xxx到本地
 

2、svn

3、vim

3.1 设置tab为4个空格

set ts=4
set expandtab
set autoindent

3.2 粘贴代码取消自动缩进

1,在拷贝前输入:set paste (这样的话,vim就不会启动自动缩进,而只是纯拷贝粘贴)
2,拷贝完成之后,输入:set nopaste (关闭paste)

3.3 替换某字符串(全部替换)

将dev替换成mydev
:%s/dev/mydev/g

4、patch