git学习日记-第一天

git学习日记

1.使用指令创建用户

$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"

创建自己的用户名和邮箱,“-global”表示这台机器上所有的Git仓库都会使用这个配置。

2.创建版本库
首先在一个纯英文路径下创建一个新文件夹,这里暂且命名为“learngit”。
通过指令“pwd”,来找到文件夹所在的路径。
接着,通过“git init”命令把这个目录变为Git仓库

$ git init
Initialized empty Git repository in /Users/michael/learngit/.git/

系统会自动生成一个“.git”文件夹,该文件夹是git用于跟踪管理版本库的,不要手动修改文件夹内的文件。

3.把文件添加到版本库
所有的版本控制系统,其实只能跟踪文本文件的改动,比如TXT文件,网页,所有的程序代码等等,Git也不例外。版本控制系统可以告诉你每次的改动,比如在某一行加了一个单词“moriarty”,在第8行删了一个单词“Windows”。而图片、视频这些二进制文件,虽然也能由版本控制系统管理,但没法跟踪文件的变化,只能把二进制文件每次改动串起来,也就是只知道图片从100KB改成了120KB,但到底改了啥,版本控制系统不知道,也没法知道。

不幸的是,Microsoft的Word格式是二进制格式,因此,版本控制系统是没法跟踪Word文件的改动的,前面我们举的例子只是为了演示,如果要真正使用版本控制系统,就要以纯文本方式编写文件。

因为文本是有编码的,比如中文有常用的GBK编码,日文有Shift_JIS编码,如果没有历史遗留问题,强烈建议使用标准的UTF-8编码,所有语言使用同一种编码,既没有冲突,又被所有平台所支持。

Windows用户不要使用自带的记事本编辑任何文本文件。因为系统自带的记事本在保存编码方式为UTF-8格式的文件的时候,会在文件的开头自动添加0xefbbbf(十六进制)。可能会造成不可预知的错误。推荐使用notepad++代替记事本。记得更改默认编码格式为UTF-8。

首先,编写一个文本文件,命名为“readme”,内容如下:

Git is a version control system.
Git is free software.

将此文件放在learngit目录下。
将一个文件放入git仓库需要两步:
第一步,用命令“git add”将文件添加到仓库

$ git add readme.txt

第二步,用命令“git commit”把文件提交到仓库

$ git commit -m "wrote a readme file"
[master (root-commit) eaadf4e] wrote a readme file
 1 file changed, 2 insertions(+)
 create mode 100644 readme.txt

“-m”的后面是关于本次提交的说明,用于书写备注信息。
1 file changed 表示1个文件被改动
2 insertions(+)表示插入了两行内容
commit可以一次提交很多文件,所以用户可以多次add不同的文件,比如:

$ git add file1.txt
$ git add file2.txt file3.txt
$ git commit -m "add 3 files."

4.版本控制
在工作中,可以使用“git status”命令来掌握工作区的状态,如果提示文件被修改过,可以使用命令“git diff”查看修改内容。

经过2次提交修改,目前系统内已经有了三个版本的“readme.txt”文件,在版本控制系统中,使用指令“git log”来查看历史记录。

$ git log
commit 5e06527246c4beb4c4b1575d8335e036af4fcf2c (HEAD -> master)
Author: moriarty <771248761@qq.com>
Date:   Thu Nov 29 22:14:27 2018 +0800

    apped GPL

commit 230f13f4f5d630e982b077c5e2f61af47ba0e59d
Author: moriarty <771248761@qq.com>
Date:   Thu Nov 29 22:11:12 2018 +0800

    add distributed

commit e54782f8bf39d2bde7cc2e7beccd6bec6337f7da
Author: moriarty <771248761@qq.com>
Date:   Thu Nov 29 21:34:58 2018 +0800

    wrote a readme file

同时,可以在后面加上“–pretty=oneline”参数,这样显示的信息就会简洁一些。

$ git log --pretty=oneline
5e06527246c4beb4c4b1575d8335e036af4fcf2c (HEAD -> master) apped GPL
230f13f4f5d630e982b077c5e2f61af47ba0e59d add distributed
e54782f8bf39d2bde7cc2e7beccd6bec6337f7da wrote a readme file

前面的数字字母串为commit id(版本号),是一个SHA1计算出来的非常大的数字。后续可以用于版本前进或后退。

在git中,用head表示当前版本,也就是最新提交的版本,上一个版本是head**,上上一个版本就是**head^,往上100个版本的时候,可以写成head~100

将当前版本回退到上一个版本,使用指令“git reset”

$ git reset --hard HEAD^
HEAD is now at e475afc add distributed

将版本前进到一个之后的版本可以借助commit id。

$ git reset --hard 5e065
HEAD is now at 5e06527 apped GPL

Git的版本回退速度非常快,因为Git在内部有个指向当前版本的HEAD指针,当你回退版本的时候,Git仅仅是把HEAD从指向append GPL改为指向add distributed

若之后的某一天,你想回看之前进行过的操作,可以使用指令“git reflog”来进行操作

$ git reflog
5e06527 (HEAD -> master) HEAD@{0}: reset: moving to 5e065
230f13f HEAD@{1}: reset: moving to head^
5e06527 (HEAD -> master) HEAD@{2}: commit: apped GPL
230f13f HEAD@{3}: commit: add distributed
e54782f HEAD@{4}: commit (initial): wrote a readme file
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值