vim&git基本命令

小白基础待整理

vim基本命令

gUU (变大写)
guu (变小写)

ctrl+r 反撤销
ctrl+r 反撤销
按u是撤销 (ctrl+z)

在vim file1之后, 可 :sp file2添加窗口(上下,:split file2) 或者 :vs file2(左右 :vsplit file2) 或者:e file2(单纯打开文件)

在 vim file1 file2之后:
:n 下一个文件 :N上一个文件
ctrl+6下一个文件
:bn下一个文件
:bp上一个文件 (当前窗格中切换文件)
或者:vs分窗口

分窗口之后:
ctrl+w+w 切换到下一个窗格
ctrl+w+h/j/k/l

第二种: 直接 vim -o file1 file2 (上下)

删除
x 删除光标所在处字符
X 删除光标所在前字符

dw 删除到下一个单词开头
de 删除到本单词末尾
dE 删除到本单词末尾包括标点在内
db 删除到前一个单词
dB 删除到前一个单词包括标点在内

dd 删除行
d$ / D 删除光标位置到本行结尾
d0 删除光标位置到本行开头

3dd 删除从光标开始三行

替换:http://www.cnblogs.com/jianyungsun/archive/2011/03/20/1989276.html

:s/vivian/sky/ 替换当前行第一个 vivian 为 sky 
:s/vivian/sky/g 替换当前行所有 vivian 为 sky 
:n,$s/vivian/sky/ 替换第 n 行开始到最后一行中每一行的第一个 vivian 为 sky 
:n,$s/vivian/sky/g 替换第n行开始到最后一行中每一行所有vivian为sky. n 为数字,若n为.,表示从当前行开始到最后一行 
:%s/vivian/sky/(等同于 :g/vivian/s//sky/) 替换每一行的第一个 vivian 为 sky 
:%s/vivian/sky/g(等同于 :g/vivian/s//sky/g) 替换每一行中所有 vivian 为 sky

1: 快速到最后一行:
shift + G
2:快速到第一行: 1 + shift +G
3: 快速到第40 行: 40 + shift + G

hjkl 左下上右 w是下一个单词,b是上一个单词
13h
行:0行首 $行尾 0 $ G gg都可以直接移动
文件 G 1G==gg

HML G gg 页面的就是ctrl f+d(floor and down?)、u+b(up and before?)、 e、y

a是字符后面,i是插入到字符前面
o光标下方插入一行,O光标上方插入一行

/和?是正则搜索 n和N移动 :nohlsearch 停止搜索显示 :nohl

zz zt 屏幕移动

显示行号
$vi ~/.vimrc
set number

vim的分屏功能

总结起来,基本都是ctrl+w然后加上某一个按键字母,触发一个功能。
(1)在shell里打开几个文件并且分屏:
  vim -On file1 file2 …
  vim -on file1 file2 …

大O表示垂直分割(vertical),小o表示水平分割(默认horizontal),后面的n表示分几个屏,实际上我觉得不用写,默认按后面要分割的文件数来决定分几个屏。
(2)在vim里打开一个分屏:
  创建空白分屏:
  :new
  打开任意文件:
  :vsplit(:vsp) filename
  :sp(split) filename
  打开当前文件:
  ctrl+w 和 s(split)
  ctrl+w 和 v(vsplit)

(3)关闭一个分屏:
  :only 或者 ctrl+w 和 o取消其它分屏,只保留当前分屏
  ctrl+w 和 c(close)
  只剩最后一个分屏以后推出:
  ctrl+w 和 q(quit)
(4)移动光标,也就是切换分屏;也可以移动分屏,比如将左分屏移动到右边。
  ctrl+w 和 w(各种切换,只有两个分屏的时候还是比较方便的)
  ctrl+w 和 h(H) 左
  ctrl+w 和 j(J) 下
  ctrl+w 和 k(K) 上
  ctrl+w 和 l(L) 右
(5)最后就是改变分屏尺寸的操作了。
  ctrl+w 和 < 左
  ctrl+w 和 > 右
  ctrl+w 和 + 上
  ctrl+w 和 - 下
  ctrl+w 和 = 恢复均等

iI:插入
sS:删除字符然后插入
aA:在当前文本后追加
c移动命令:删除移动命令表示的文本后输入
C:删除到行尾输入
以上命令都可以进入插入模式

git 基础命令

git fetch origin master:tmp
git diff tmp
git merge tmp
=git pull origin master:localbranch
git fetch origin master
git log -p master…origin/master
git merge origin/master
git push
git push origin localref:remoteref

git remote -v
git remote show origin
git rev-parse head

//子模组
git submodule add 子模组仓库地址 路径
git clone --recursive

git config --list

git commit …
git pull
conflict: 手动修改或者git gui修改
git commit …
git push/ 前面可以再pull一下

git add -i 交互操作界面
git add -A
git commit -a //add文件都加入commit,提交Changes but not updated
git commit -m “sda”
git commit -a -m “commit info”
git commit --amend
http://www.cnblogs.com/eddy-he/archive/2012/03/22/git_commit.html

git stash

git branch -a | git branch -r

git init
touch README
git add README
git commit -m ‘first commit’
git remote add origin git@github.com:youusername/test.git
git push -u origin master
http://www.cnblogs.com/eddy-he/archive/2012/03/22/git_commit.html

maybe better:http://www.runoob.com/w3cnote/git-gui-window.html

本地有修改和提交,如果想放弃这些修改和提交 可以使用如下命令强制用远程的库更新:
git fetch --all
git reset --hard origin/master
git fetch --all 只是下载远程的库的内容,不做任何的合并
git reset --hard origin/master 把HEAD指向刚刚下载的最新的版本
git fetch origin 远程分支

git log -p 4a66cec14c26aafdbsuduasd -1
git log --author=qwhe -2
git log --name-only -2
git log --stat -2
git log -p -2
git log | grep ‘qwhe’

git checkout . #本地所有修改的。没有的提交的,都返回到原来的状态
git stash #把所有没有提交的修改暂存到stash里面。可用git stash pop回复。
git reset --hard HASH #返回到某个节点,不保留修改。
git reset --soft HASH #返回到某个节点。保留修改

别人删除远程分支后
运行 git branch -a 也不能看出这个branch被删除了
查看远程的状态: git remote show origin
git remote prune origin 可以将其从本地版本库中去除
fetch之后删除掉没有与远程分支对应的本地分支: git fetch -p

删除 untracked files
git clean -f
连 untracked 的目录也一起删掉
git clean -fd

查看文件的每一行是哪个提交最后修改的
查看文件的每一个详细的历史修改,如果没有-p选项,只显示提交记录
git log -p filename

git blame filename

git pull --rebase origin master
强制覆盖:git push --force origin master:h00422038

git blame -L 58,100 KeyboardActivity.java

git log --oneline --graph --decorate

可以使用git reflog show或git log -g命令来看到所有的操作日志
ssh -p 29418 h00422038@cloudos-review.huawei.com gerrit version

git cherry-pick commit1 commit2 commit3

git checkout -b branch3 1a222c3
git checkout -b 本地分支名x origin/远程分支名x
git fetch origin 远程分支名x
git remote update origin --prune

git stash
git stash save ‘msg’
git stash pop
git stash apply stash@{0}
git stash drop stash@{0}
git stash clear
git stash pop --index 同时也恢复暂存区
git stash show
git stash show -p stash@{1}
git stash list

查看哪些分支需要清理
git remote prune origin --dry-run
删除本地版本库上那些失效的远程追踪分支
git remote prune origin

git clean -f

git remote update --prune的作用?

查看某个提交时指定文件的具体内容
git show 9efcb7c:index.html

git branch --set-upstream-to=origin/foo
git push origin head:refs/for/

git checkout -b 本地分支名x origin/远程分支名x
git checkout -b master_6.5

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值