用户信息
第一个要配置你的个人用户名称和电子邮件的地址
$ git config --global user.name "Jone Doe" $ git config --global user.email [email protected]
文本编辑器
接下来要设置的是默认使用的文本编辑器,默认会使用操作系统指定的默认编辑器,一般可能会是 Vi 或者 Vim。
如果你有其他偏好,比如 Emacs 的话,可以重新设置:
$ git config --global core.editor emacs
差异分析工具
还有一个比较常用的是,在解决合并冲突时使用哪种差异分析工具。比如要改用 vimdiff 的话:
$ git config --global merge.tool vimdff
查看配置信息
检查已有的配置信息
$ git config --list
取得GIT仓库
俩种取得GIT仓库方法。
第一种在现存的目录下,通过导入所有文件来创建新的Git仓库。
第二种是从已有的Git仓库克隆出新的仓库镜像。
从现有工作目录中初始化新仓库
$ git init
当前目录下会出现一个.git的目录,所有git的数据和资源都会存放在这个目录。
如果需要目录下的几个文件纳入版本控制,需要git add命令告诉Git开始对文件进行跟踪,然后提交
$ git add * $ git commit -m 'initial project version'
从现有仓库克隆
克隆仓库的命令格式 git clone [url] 例如克隆Ruby的git库
$ git clone git://github.com/schacon/grit.git
会在当前目录下创建一个名为'grit'的目录,包含.git的目录,里面包含所有版本记录,然后从中取出最新版的文件拷贝。
如果想在克隆的时候,自己定义新创建项目的目录名称:
$ git clone git://github.com/schacon/grit.git mygrit
然后目录名称就会使mygrit了。
目前git支持很多协议。之前的例子使用git://协议。还支持http(s)://或user@server:/path.git
记录每次更新到库
工作目录下面的所有文件不外有俩种状态:已跟踪或未跟踪。已跟踪指已纳入版本管理的文件,工作一段时间后,他们的状态可能会变为 未更新,已修改,已放入暂存区。未跟踪的文件既没有上次更新时的快照,也不再暂存区。初次克隆某个仓库时,工作目录中所有文件属于已跟踪,且状态为未修改。
untracked --add the file-->unmodified --edit the flie-->modified --stage the file--> staged untracked <--remove the file--unmodified <-------------------commit----------------- staged
检查当前文件状态
$git status
on branch master nothing to commit (working directory clean);
如果出现这句话表明工作目录中没有跟踪者的文件,或跟踪者的文件在上次提交后没有更改。
从头演示:
//创建一个文件 $ touch README.md //初始化 $ git innit
$ git add README.MD
现在我们改变一下README.md,在文件里写入 'first commit';然后查看 git status
git add命令是多功能命令。可以开始跟踪文件,或者把已跟踪文件放到暂存区,还可以用于合并时把冲突的文件标记为已解决状态。
查看已暂存和未暂存的更新
git status的显示比较简单,仅仅列出了修改过的文件,古国查看具体改了哪些地方可以用git diff
$ git diff
我们现在修改一下 README.md
提交更新
可以这样:
$ git commit
也可以这样 commit后面加上此次提交的注释(我一般这样写):
$ git commit -m 'first commit'
也可以跳过使用暂存区域,Git会自动把所以已跟踪的文件暂存起来一并提交,从而跳过 git add 步骤。
$ git commit -a -m 'first commit'
移除文件
在Git中一出文件,就必须要从已跟踪的文件清单中移除(暂存区),然后提交。可以使用git rm
1 如果文件未 跟踪:
$ rm test.js
2 文件被追踪,已存入暂存区,只是把文件移除暂存区,不从目录中删除
$ git rm --cached test.js
3 文件被追踪,从缓存区和目录中删除
$ git rm -f test.js
更改文件名字
$ git mv flle_form file_to
查看提交历史
$ git log
git log会按提交的时间列出所有更新。
一般常用-p选项搜寻感兴趣的提交,这里用-2仅显示最近俩次更新
$ git log -p -2
简要显示增改的行数
$ git log --stat
还有 --pretty,制定不同的格式战士提交历史,oneline每个提交放在一行显示
$ git log --pretty=oneline
还有short,full,fuller,format(定制显示的记录格式)
这里不截图了。
撤销操作
修改最后一次提交
$ git commit --amend
取消已暂存的文件
$ git reset HEAD test2.js
取消对文件的修改
取消的文件必须是已跟踪的文件
$ git checkout -- test2.js