版本控制工具GIT教程兼VIM基本知识(二)
GIT简介 (文末有软件下载链接)
Linus的第二个伟大作品。2005年由于BitKeeper软件公司对Linux社区停止了免费使用权。Linus迫不得己自己开发了一个分布式版本控制工具,从而Git诞生了。
目前使用Git作为版本控制的开源软件:Linux kernel,Android, jQuery, Ruby on Rails,Debian…
Eclipse上使用Git的项目数量也已经超过了使用SVN的仓库数。
选用GIT的原因?
- 分布式,强调个体
- 公共服务器压力和数据量都不会太大
- 速度快、灵活
- 任意两个开发者之间可以很容易的解决冲突
- 离线工作
- 每日工作备份
- 可以吃后悔药
GIT的话,因为有些特殊,所以我放在了后边来说,MAC内内置了,是可以直接使用的,不必安装软件。
(一) GIT 下 vim编辑器 进入编辑模式: i 退出编辑模式: Esc 保存退出: (:wq) 强制退出 (不保存):(:q!)
1. 创建git资源库 git init --bare 库名称 2. 在用户文件夹下把资源clone下来 git clone <仓库目录> /g/software/repository/git/itheima <用户目录> . 注意:clone时候用户目录必须为空 3. 创建一个文件,纳入到版本控制中。 git add <文件名> 第一次执行会出警告:warning: LF will be replaced by CRLF in readme.txt. The file will have its original line endings in your working directory. 警告处理:需要配置用户信息 git config user.name = "zhangsan" git config user.email = "itheima@gmail.com" 4. 提交到本地版本库里。 git commit <文件名> 5. 推送到远程共享版本库中 git push origin master 6. 切换用户,拉取最新的文件 git pull
7. 强制恢复到之前版本
git reset -hard
8. 查看状态
git status
9. 查看上传记录(log)
git log
10. git帮助指令
git --help
11. 回退到某个版本
利用上传记录查看commit(版本号)
git reset --hard b232484r....
git pull 之后有冲突: $ git pull remote: Counting objects: 5, done. remote: Compressing objects: 100% (2/2), done. remote: Total 3 (delta 0), reused 0 (delta 0) Unpacking objects: 100% (3/3), done. From g:/software/repository/git/itheima26 50db030..a04027a master -> origin/master Auto-merging readme.txt CONFLICT (content): Merge conflict in readme.txt Automatic merge failed; fix conflicts and then commit the result. 解决方法: 1.git mergetool 调用上面命令之后会提示你输入编辑方法,输入:beyond compare 进入编辑器. 2.编辑完之后.调用git commit -a 把当前目录中所有都提交到本地库中. 3.git push origin master 提交到远程库中.
(二)window下的 GIT
1) Git软件下载安装 链接地址:https://code.google.com/p/msysgit/downloads/list
2) 建立Git仓库
- git init --bare 库名称
仓库目录说明
- hooks目录:脚本文件的目录。
- info目录:保存了不希望在 .gitignore 文件中管理的忽略模式的全局可执行文件
- logs目录:日志目录
- objects目录:存储所有数据内容
- refs目录:存储指向数据(分支)的提交对象的指针
- config文件包含了项目特有的配置选项
- description文件仅供 GitWeb 程序使用
- HEAD文件指向当前分支
3)利用TortoiseGit来管理客户端内容:
下载安装 https://code.google.com/p/tortoisegit/wiki/Download
a)安装 运行TortoiseGit-1.7.7.0-32bit.msi, 如下图
···· 点击Next, 下一步;
点击Next, 下一步 ; 选择ssh客户端, 使用默认, 点击Next, 下一步
选择安装路径, 点击Next, 下一步
点击Install, 开始安装;Win 7下弹出一个确认安装的提示框, 确认就可以了。
安装完成. 确认是否安装成功, 在桌面->点击右键, 如下图
安装包链接:https://download.****.net/download/qq_33404596/11254759
-------------------------------------------------------------------------我是分割线-------------------------------------------------------------------------------------------------------------------
Mac的vim操作:
1、vi的基本概念 基本上vi可以分为三种状态,分别是 命令模式(command mode) 插入模式(Insert mode) 底行模式(last line mode) 1) 命令行模式command mode) 控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode。 2) 插入模式(Insert mode) 只有在Insert mode下,才可以做文字输入,按[ESC]键可回到命令行模式。 3) 底行模式(last line mode) 将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号……等。 不过一般我们在使用时把vi简化成两个模式,就是将底行模式(last line mode)也算入命令行模式command mode)。 2、vi的基本操作 a) 进入vi 在系统提示符号输入vi及文件名称后,就进入vi全屏幕编辑画面: $ vi myfile 不过有一点要特别注意,就是您进入vi之后,是处于[命令行模式(command mode)],您要切换到[插入模式(Insert mode)]才能够输入文字。初次使用vi的人都会想先用上下左右键移动光标,结果电脑一直哔哔叫,把自己气个半死,所以进入vi后,先不要乱动,转换到 [插入模式(Insert mode)]再说吧! b) 切换至插入模式(Insert mode)编辑文件 在[命令行模式(command mode)]下按一下字母i就可以进入[插入模式(Insert mode)],这时候你就可以开始输入文字了。 c) Insert 的切换 您目前处于[插入模式(Insert mode)],您就只能一直输入文字,如果您发现输错了字!想用光标键往回移动,将该字删除,就要先按一下[ESC]键转到[命令行模式(command mode)]再删除文字。 d) 退出vi及保存文件 命令行模式下保存并退出:输入ZZ 在[命令行模式(command mode)]下,按一下[:]冒号键进入[Last line mode],例如: : w filename (输入 [w filename]将文章以指定的文件名filename保存) : wq (输入[wq],存盘并退出vi) : q! (输入q!, 不存盘强制退出vi) :x (执行保存并退出vi编辑器) 3、命令行模式(command mode)功能键 1). 插入模式 按切换进入插入模式,按“i”进入插入模式后是从光标当前位置开始输入文件; 按[a]进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字; 按[o]进入插入模式后,是插入新的一行,从行首开始输入文字。 2). 从插入模式切换为命令行模式 按[ESC]键。 3). 移动光标 vi可以直接用键盘上的光标来上下左右移动,但正规的vi是用小写英文字母[h]、[j]、[k]、[l],分别控制光标左、下、上、右移一格。 按[ctrl]+[b]:屏幕往“后”移动一页。 按[ctrl]+[f]:屏幕往“前”移动一页。 按[ctrl]+[u]:屏幕往“后”移动半页。 按[ctrl]+[d]:屏幕往“前”移动半页。 按[gg]:移动到文章的首行。(可能只在Vim中有效) 按[G]:移动到文章的最后。 按[$]:移动到光标所在行的“行尾”。 按[^]:移动到光标所在行的“行首” 按[w]:光标跳到下个字的开头 按[e]:光标跳到下个字的字尾 按[b]:光标回到上个字的开头 按[#l]:光标移到该行的第#个位置,如:5l,56l。 Vi还提供了三个关于光标在全屏幕上移动并且文件本身不发生滚动的命令。它们分别是H、M和L命令。 (1)H命令 该命令将光标移至屏幕首行的行首(即左上角),也就是当前屏幕的第一行,而不是整个文件的第一行。利用此命令可以快速将光标移至屏幕顶部。若在H命令之前加上数字n,则将光标移至第n行的行首。值得一提的是,使用命令dH将会删除从光标当前所在行至所显示屏幕首行的全部内容。 (2)M命令 该命令将光标移至屏幕显示文件的中间行的行首。即如果当前屏幕已经充满,则移动到整个屏幕的中间行;如果并未充满,则移动到文本的那些行的中间行。利用此命令可以快速地将光标从屏幕的任意位置移至屏幕显示文件的中间行的行首。例如,在上面屏幕显示的情况下(不论光标在屏幕的何处),在命令模式下,输入命令M之后,光标都将移到add这一行的字母a上。同样值得一提的是,使用命令dM将会删除从光标当前所在行至屏幕显示文件的中间行的全部内容。 (3)L命令 当文件显示内容超过一屏时,该命令将光标移至屏幕上的最底行的行首;当文件显示内容不足一屏时,该命令将光标移至文件的最后一行的行首。可见,利用此命令可以快速准确地将光标移至屏幕底部或文件的最后一行。若在L命令之前加上数字n,则将光标移至从屏幕底部算起第n行的行首。同样值得一提的是,使用命令dL将会删除从光标当前行至屏幕底行的全部内容。 4). 删除文字 [x]:每按一次,删除光标所在位置的“后面”一个字符。 [#x]:例如,[6x]表示删除光标所在位置的“后面”6个字符。 [X]:大写的X,每按一次,删除光标所在位置的“前面”一个字符。 [#X]:例如,[20X]表示删除光标所在位置的“前面”20个字符。 [dd]:删除光标所在行。 [#dd]:从光标所在行开始删除#行 5). 复制 [yw]:将光标所在之处到字尾的字符复制到缓冲区中。 [#yw]:复制#个字到缓冲区 [yy]:复制光标所在行到缓冲区。 [#yy]:例如,[6yy]表示拷贝从光标所在的该行“往下数”6行文字。 [p]:将缓冲区内的字符贴到光标所在位置。注意:所有与“y”有关的复制命令都必须与“p”配合才能完成复制与粘贴功能。 6). 替换 [r]:替换光标所在处的字符。 [R]:替换光标所到之处的字符,直到按下[ESC]键为止。 7). 恢复上一次操作 [u]:如果您误执行一个命令,可以马上按下,回到上一个操作。按多次“u”可以执行多次回复。 8). 更改 [cw]:更改光标所在处的字到字尾处 [c#w]:例如,[c3w]表示更改3个字 9).撤销更改 [u]:撤销上一次更改,可以一直按[u],一直撤销到最旧修改状态。 [ctrl]+[r]:恢复撤销的更改,可以一直按该组合键达到最新的改变。 10). 跳至指定的行 [ctrl]+[g]列出光标所在行的行号。 [#G]:例如,[15G],表示移动光标至文章的第15行行首。 4、Last line mode下命令简介 在使用[last line mode]之前,请记住先按[ESC]键确定您已经处于[command mode]下后,再按[:]冒号即可进入[last line mode]。 A) 列出行号 [set nu]:输入[set nu]后,会在文件中的每一行前面列出行号。 B) 跳到文件中的某一行 [#]:[#]号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字15,再回车,就会跳到文章的第15行。 C) 查找字符 [/关键字]:先按[/]键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按[n]会往后寻找到您要的关键字为止。 [?关键字]:先按[?]键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按[n]会往前寻找到您要的关键字为止。 D) 保存文件 [w]:在冒号输入字母[w]就可以将文件保存起来。 E) 离开vi [q]:按[q]就是退出,如果无法离开vi,可以在[q]后跟一个[!]强制离开vi。 [wq]:一般建议离开时,搭配[w]一起使用,这样在退出的时候还可以保存文件,可以在后面再跟[!]强制保存退出。 [ZZ]:保存并退出vi。