[Git] Tutorial

2017-06-15  本文已影响0人  帕瑟芬妮亚瑟

廖雪峰 Git教程 读书笔记

在Windows上安装Git

$ git config --global user.name "[name]"
$ git config --global user.email "[email@example.com]"

注意git config命令的--global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。

创建版本库

$ mkdir learngit
$ cd learngit

如果使用Windows系统,为了避免遇到各种莫名其妙的问题,请确保目录路径不包含中文。

$ git init

瞬间Git就把仓库建好了,而且告诉你是一个空的仓库empty repository。
同时当前目录下多了一个.git的目录,这个目录是用来跟踪管理版本库的。

把文件添加到版本库

版本控制系统可以告诉你文本文件的每次改动,比如在第5行加了一个单词“Linux”,在第8行删了一个单词“Windows”。
而对于图片、视频这些二进制文件,虽然也能由版本控制系统管理,但没法跟踪文件的变化,只能把二进制文件每次改动串起来。也就是只知道图片从100KB改成了120KB,但到底改了什么内容,版本控制系统不知道,也没法知道。

Microsoft的Word格式是二进制格式,因此,版本控制系统是没法跟踪Word文件的改动的。

$ git add readme.txt

可反复多次使用,添加多个文件。

$ git commit -m "wrote a readme file"

基本控制

$ git status
$ git diff readme.txt 
$ git log --pretty=oneline

版本回退

$ git reset --hard HEAD^
$ git reset --hard 3628164

Git的版本回退速度非常快,因为Git在内部有个指向当前版本的HEAD指针,当你回退版本的时候,Git仅仅是改变了HEAD的指针指向。

$ git reflog

工作区和暂存区

把文件往Git版本库里添加的时候,是分两步执行的:
第一步是用git add把文件添加进去,实际上就是把文件修改添加到暂存区。
第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。
因为我们创建Git版本库时,Git自动为我们创建了唯一一个master分支,所以,现在,git commit就是往master分支上提交更改。

管理修改

第一次修改 -> git add -> 第二次修改 -> git commit时,在工作区的第一次修改被放入暂存区,准备提交,但是,在工作区的第二次修改并没有放入暂存区,所以,git commit只负责把暂存区的修改提交了,也就是第一次的修改被提交了,第二次的修改不会被提交。

$ git diff HEAD -- readme.txt 

撤销修改

$ git checkout -- readme.txt
$ git reset HEAD readme.txt

git reset命令既可以回退版本,也可以把暂存区的修改回退到工作区。当我们用HEAD时,表示最新的版本。

然后重复一遍上述丢弃工作区的修改。

$ git checkout -- readme.txt

删除文件

$ git rm test.txt
$ git commit -m "remove test.txt"
$ git checkout -- test.txt
上一篇下一篇

猜你喜欢

热点阅读