Git学习笔记

Git学习笔记

1 简介

Git是Linux创建者Linus在2005年用C语言编写的一个分布式版本控制系统。

集中式版本控制系统:版本库集中存放在中央服务器,使用时需要先从中央服务其取得最新的版本,完成工作后再推送给中央服务器。必须联网才能工作。代表:CVS,SVN(开源免费)ClearCase(IBM,收费)VSS(微软)

分布式版本控制系统:版本库在个人的电脑上,修改后将文件推送给同伴即可,安全性更高。还有强大的分支管理。代表:Git,BitKeeper(收费),Mercurial,Bazaar。

2 创建版本库

2.1 新建版本库

  • 在希望的地位新建一个空目录learngit,并进入进入新建的目录

    mkdir learngit
    cd learngit
    
  • 将这个目录变成Git可以管理的仓库

    git init
    

2.2 把文件添加到版本库

所有版本控制系统只能跟踪文本文件的改动,如TXT文件、网页、所有程序代码等;图片、视频这些二进制文件虽然也能由版本控制系统管理,但无法跟踪文件的变化,如只能知道文件大小的变化,而无法知道实际更改内容。Word格式就是二进制格式,所以无法用版本控制系统跟踪Word文件改动。所以,要真正使用版本控制系统,就要以纯文本方式编写文件,建议使用标准的UTF-8编码。

这里编写一个read.txt文件,并放入learngit目录(或其子目录)下内容如

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

然后有两步:

  • 把文件添加的仓库,可以一次添加多个文件,用空格隔开

    git add readme.txt
    
  • 把文件提交到仓库,可以一次提交多个文件,用空格隔开

    git commit -m "wrote a readme file"
    

    输出

    [master (根提交) 98b83c0] wrote a readme file
     1 file changed, 2 insertions(+)
     create mode 100644 readme.txt
    

    -m后输入的时本次提交的说明,尽量输入有意义的说明。

3 时光机穿梭

3.1 工作区状态

使用

git status

可以掌握工作区的状态。

当有read.txt文件被修改后,会输出

➜  learngit git:(master) git status
位于分支 master
尚未暂存以备提交的变更:
  (使用 "git add <文件>..." 更新要提交的内容)
  (使用 "git checkout -- <文件>..." 丢弃工作区的改动)

	修改:     readme.txt
	
修改尚未加入提交(使用 "git add" 和/或 "git commit -a"

此时可使用

git diff

查看修改内容。

在分别使用add和conmmit命令后工作区状态会变化,可用status命令查看。

3.2 版本回退

对readme.txt文件再做一次修改并提交

Git is a distributed version control system.
Git is free software distributed under the GPL.

此时用以下命令来查看所有提交版本

git log

输出由最近到最久远的版本

commit c6d015e1215d933f536d317fc196a1d9794a78c5 (HEAD -> master) #版本号
Author: choupin <zhoubin18@mails.ucas.ac.cn>
Date:   Tue Apr 9 18:18:00 2019 +0800

    append GPL

commit 6c42c3647c333e3340ad9bac65512674378aac7f
Author: choupin <zhoubin18@mails.ucas.ac.cn>
Date:   Tue Apr 9 18:09:40 2019 +0800

    add distributed and modify a letter

commit 98b83c09ed2ec88b6c3d75257ec09555ea23b3a1
Author: choupin <zhoubin18@mails.ucas.ac.cn>
Date:   Tue Apr 9 17:46:43 2019 +0800

    wrote a readme file
~
~

也可以使用命令

git log --pretty=oneline

输出结果更加简略

c6d015e1215d933f536d317fc196a1d9794a78c5 (HEAD -> master) append GPL
#HEAD指向的版本就是当前版本
6c42c3647c333e3340ad9bac65512674378aac7f add distributed and modify a letter
98b83c09ed2ec88b6c3d75257ec09555ea23b3a1 wrote a readme file

回退上个版本:

git reset --hard HEAD^

可以通过指定版本号来恢复到回退之前的版本,或者任一个其他版本

git
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值