Git的学习笔记(一)——初识Git及版本库的管理

引言

Git是目前世界上最先进的分布式版本控制系统,是管理Linux源码的版本控制系统,也是目前谷歌采用用于管理android源码的版本控制系统。

一、Git的安装

1、Linux平台下安装

首先,我们可以输入git,检查是否已经安装了Git,如果没有安装它会提示你,你可以通过输入命令:sudo apt-get install git

$ git
The program 'git' is currently not installed. You can install it by typing:
sudo apt-get install git

反之,已经安装好了Git,就会显示,在最后一行我们也可以看到,git 几乎是个智能提示
这里写图片描述

2、Mac 平台下两种安装方式

一是安装homebrew,然后通过homebrew安装Git,具体方法请参考homebrew的文档:http://brew.sh/
第二种方法更简单(推荐),直接从AppStore安装Xcode,Xcode集成了Git,不过默认没有安装,你需要运行Xcode,选择菜单“Xcode”->“Preferences”,在弹出窗口中找到“Downloads”,选择“Command Line Tools”,点“Install”就可以完成安装了。

3、Window 平台下安装

Windows下要使用很多Linux/Unix的工具时,需要Cygwin这样的模拟环境,Git也一样。Cygwin的安装和配置都比较复杂,我自己还木有配置过。用的是牛人把模拟环境和Git都打包好了,所谓的Window版的Git,只需要下载一个单独的exe安装程序,其他什么也不用装,然后按默认选项安装即可。安装完成后,在开始菜单里找到“Git”->“Git Bash”,弹出一个类似命令行窗口的东西,就说明Git安装成功!

二、配置Git

2.1 常用配置命令

  • git config 针对一个git仓库 默认当前目录是一个git仓库,假设我们有一个仓库叫git_demo,它所修改配置保存在git_demo/.git/config文件,如果当前目录不是一个有效的git仓库,在执行‪一些命令时会报错

  • git config –global 针对一个用户,即说只要是这个用户操作任何git仓库,那么这个配置都会生效,这种配置保存在~/.gitconfig当中,那什么样的配置需要放到用户的配置文件里呢,git里一个最为重要的信息就是提交者的个人信息

$ git config --global user.name "Your Name"
$ git config --global user.email "youremail@example.com"
  • sudo git config –system 针对一个系统,因为是针对整个系统的,所以必须使用sudo,适用于一个系统中所有的用户,即这里的配置对所有用户都生效,那什么样的配置需要放在这里呢,如我们在执行git commit会弹出一个默认的编辑器,一般是vim,那作为系统的管理员,可以将vim设置为所有用户默认使用的编辑器
$sudo git config --system core.editor vim

还可以配置其他user.xxx属性。因为Git是分布式版本控制系统,便于后期的协作时,更易追踪。

2.2 使用 alias 重新设置git 命令别名

例如输入git ci相当于输入git commit -s,又如输入git st 相当于输入git status

$sudo git config --global alias.st status
$sudo git config --global alias.ci "commit -s"
$sudo git config --global alias.co checkout
$sudo git config --global alias.br branch

其中–global 参数非必填,也可以使用–system代替。

2.3 开启Git命令的颜色显示

$git config --global color.ui true

三、创建并管理本地版本库

所谓版本库又名仓库,英文名repository,可以简单理解成一个目录(即隐藏的.git文件夹),这个目录的父目录(即所谓的工作区)里面的所有文件都可以被Git管理起来,每个文件的修改、删除,都可以被跟踪,以便在任何时刻可以回溯版本。

1、创建一个空的本地版本库

创建一个空的版本库只需两部,先创建一个空目录(在Windows系统,为了避免各种莫名其妙的问题,请确保所有目录名及父目录都不包含中文),再init(git init)

ubuntu2@ubuntu:/media/S2/share$ mkdir codebanks //创建一个目录即工作区
ubuntu2@ubuntu:/media/S2/share$ cd codebanks//进入到目录中
ubuntu2@ubuntu:/media/S2/share/codebanks$ pwd//显示当前命令
/media/S2/share/codebanks

完成了第一步之后只是建立了一个空的目录,还没有形成所谓的版本库,所以还得进行初始化,执行git init 命令之后目录下会多出一个隐藏的.git文件夹(该目录是Git来管理版本库的,请勿手动修改这个目录里面的文件,否则造成严重后果),就说明空的版本库已经创建完毕了。

ubuntu2@ubuntu:/media/S2/share/codebanks$ git init
Initialized empty Git repository in /media/S2/share/codebanks/.git/

在Git 1.6.5 或者更高版本之后,我们可以在git init 之后直接输入目录名也可以完成初始化

ubuntu2@ubuntu:/media/S2/share$ git init codebanks
Initialized empty Git repository in 

这里写图片描述

2、把已存在的目录变成可以被Git管理的本地版本库

当然我们不一定每次都得在空目录下创建Git仓库,选择一个已存在的目录也是可以的。只需要切到所在目录的路径下执行git init 即可。

3、把文件添加到Git本地版本库中

一般来说分为两个主要步骤,第一,使用命令git add filename,(可反复多次使用,添加多个文件);第二步,使用命令git commit -m”提交的内容描述” 提交。但是若是提交到远程版本库提交流程稍微复杂一点为了避免冲突嘛。

//git提交代码到版本库的一般流程
  git status 查看当前版本库的状态
  git diff 查看具体修改内容
  git add -u 添加所有代码到暂存区
  git show 修改的序列号(可以查看具体修改文件内容(已经提交的))
  git log -4 --pretty=oneline --stat 查看四条提交历史记录且一行显示
  git commit -m"你对这次提交内容的简单描述" 提交

版本库只能直接add 版本库里的文件,所以我们向空的版本库中添加文件时,第一步是把要添加的文件copy至版本库里,然后才能add、commit。

复制到版本库之后还未add时
这里写图片描述
add之后
这里写图片描述
提交git commit -m”提交描述”
这里写图片描述
ps:commit的时候一定要添加-m参数??否则git log 还是会报 fatal: bad default revision ‘HEAD’ 因为会认为仓库里没有任提交在里面,所以它会报这个错??

4、提交新的版本

假如我们在外部修改了aw08.txt文件未add之前,此时查看版本库git status则会提示
这里写图片描述
所以和svn不同每次提交都得先add再commit
这里写图片描述

5、回溯到历史记录的某个版本

与svn不同的不是,Git每一次提交成功之后自动生成的commit Id不是1,2,3……递增的数字,而是使用SHA1计算出来的一个非常大的数字,用十六进制表示即每一个commit Id 唯一对应着一个版本,用HEAD表示当前版本,也就是最新的提交c042e4b66……ceac5,前一个版本就是HEAD^,前前一个版本就是HEAD^^,那么往上上百个版本呢。当然不是写上百个^,而是前100个则写成**HEAD~**100。

5.1 使用git reset –hard查看当前HEAD指针指向的版本号

这里写图片描述

5.2 使用git reset –hard HEAD^回到当前版本的前一个版本

这里写图片描述

5.3 通过git reset –hard commit Id 返回到对应的版本中

这里写图片描述

5.4 使用git reflog来查看历史操作记录

这里写图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CrazyMo_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值