小白都能学会的Git操作

摘要:Git是现今世界上最先进的分布式版本控制工具。这篇文章主要介绍了什么是Git,如何安装以及简单的使用Git。

git

官方说明文档:https://git-scm.com/book/zh/v2

1 什么是git?

一句话:git是现今世界上最先进的分布式版本控制工具

简单点:git是分布式版本控制工具

再简单点:git是版本控制工具

这里面就有几个概念要理解一下了,“最先进” 这个是毫无疑问的,全球最知名的互联网公司包括Google、Facebook、微软、twitter 等等都在使用 git。
“版本控制工具” 英文名Concurrent Version System (CVS),提供完备的版本管理功能,用于存储、追踪目录(文件夹)和文件的修改历史,是软件开发者的必备工具,是软件公司的基础设施 。简单来说就是用来记录文件的修改历史的,让你可以回到以前的状态,犹如word里面的Ctrl + Z 撤销功能,软件记录下你前面的操作,如果不小心失误了,就可以撤销操作返回到上一个状态。
“分布式” 就是git仓库信息是分布在每个克隆仓库中的,就是说一旦你克隆了这个仓库到本地,那你本地的仓库里就有仓库的所有 历史记录 。分布式之前的模式是集中式,代表是SVN(Subversion),存在一个中央服务器,每次编辑后的修改被记录到中央仓库。


2 安装git

下载exe安装程序,安装时全都选默认的,一直点下一步就OK了!
运行指令sudo apt-get install git
从AppStore安装Xcode,Xcode集成了Git,不过默认没有安装,你需要运行Xcode,选择菜单“Xcode”->“Preferences”,在弹出窗口中找到“Downloads”,选择“Command Line Tools”,点“Install”就可以完成安装了。
---------------------------------------

3 开始使用git

我们这里以windows操作系统为例,其它系统操作大同小异。

在windows安装git的同时会默认安装 git bash 插件,我们在桌面上右击鼠标就能看到 git bsah here 选项,点击后将在桌面打开 git bash 命令行工具:

git bash 命令行如下图所示:

我们可以输入 git --version 来查看git版本

获取帮助

在 git bash 中执行 git --help 即可查看帮助信息,会列举出一些git 的命令及功能。

在 git 命令中添加 --help 参数,还可以用来查看一些命令的帮助信息,如我们想查看 git config 命令的帮助信息,执行 git config --help 即可,将会在浏览器中打开帮助信息的网页。

基本配置

在第一次使用git时要设置 用户名邮箱信息 ,在以后的每一次提交修改时都会用到这些信息,不配置的话,每次提交代码到远程仓库时都要重新输入。

1
2
git config --global user.name "wqf31415"
git config --global user.email wqf31415@hotmail.com

第一句指令是设置用户名,用英文的双引号括起来,第二句是设置邮箱

设置好之后没有提示,我们可以在 git bash 命令行工具中输入 git config --list 查看设置结果

也可以输入 git config user.name 单独查看用户名

初始化git仓库

git init 指令用于初始化一个仓库
我们可以在一个空的文件夹里初始化仓库,也可以在一个用文件的文件夹里初始化,只需要我们在要初始化的文件空白区域右击打开 git bash 工具,执行 git init 命令即可,执行完成后将会在该目录下创建一个名叫 .git 的隐藏文件夹,这里面存放的是git仓库的所有信息文件。

设置忽略文件

在项目中,有些文件我们希望不用提交到 git 管理,如编译后的文件或日志输出文件,此时,我们就需要将这些文件或目录添加到忽略列表中。

在根目录中新建一个文本文件,名为 .gitignore ,看名称就知道是 git 忽略文件的作用了!

将需要忽略的文件或路径写到这个文件中,每一行就是一个忽略规则。使用 # 注释,使用 * 匹配所有,例如:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# Node 
######################
/node/**
/node_tmp/**
/node_modules/

######################
# SASS
######################
.sass-cache/**

######################
# Eclipse
######################
*.pydevproject
.project
.metadata
/tmp/**
/tmp/**/*
*.tmp
*.bak
*.swp
*~.nib
local.properties
.classpath
.settings/**
.loadpath
/src/main/resources/rebel.xml

添加完成后,将此文件加入 git 版本库并提交,以后再 add 文件时就会忽略配置的文件或目录了。

查看仓库状态

因为在用 git bash 向 git 仓库中添加文件时,添加成功时没有任何信息显示,为了查看我们是否添加成功,我们需要使用 git status 指令来查看git仓库状态:

根据输出的结果,我们可以看到仓库中没有跟踪的文件,现在所有的文件和目录都没有跟踪。

添加文件到暂存区(stage)

在初始化仓库后,仓库中的文件其实还没有被跟踪,就是git现在还不知道需要记录版本变化的文件,我们要把需要跟踪的文件添加进暂存区:

添加单个文件

git add 1.txt 将 1.txt 文件添加到仓库,添加时要输入文件名和扩展名,windows 中 git bash 默认是不支持输入中文的,所以用这种方式不能添加以中文命名的文件,可以使用下面的方式将全部文件都添加进仓库,避免了输入文件名;

添加文件后我们再查看仓库状态,发现 1.txt 文件已经不在未跟踪文件列表里了,而是在 changes to be committed 下,意思是已经跟踪的文件被改变了,可以提交了。

添加同一类型的文件

git add *.html将所有 html 文件添加到仓库,*为通配符,用这种方式可以向git仓库添加一个类型的文件;

采用通配符的方式,我们还可以模糊匹配,如文件名太长,但知道结尾是 xx.txt ,就可以使用 git add *xx.txt 来添加文件

添加所有文件

git add . 直接将目录下所有文件添加到git仓库;

删除已添加的文件

如果不小心把不需要跟踪的文件(如1.txt)添加到了仓库,可以使用 git rm --cached 1.txt 将文件从已添加文件中删除:

我们看到 1.txt 又回到了未跟踪文件列表。

提交文件

在用 git add . 指令添加所有文件后,我们就需要提交修改过的文件到仓库:
git commit -m 'change description' 引号括起来的是对修改内容的描述;

此外,也可以用 git commit 命令来提交,提交后还会启动 vim 编辑器让你输入修改描述:
aio 键可以进入插入模式,然后就可以输入提交信息了。

在输入完成后,按 Esc 键退出输入模式,再输入命令 :wq 保存并退出,或 :wq! 强制保存并退出。输入命令 :q 退出 vim 编辑,或 :q! 不保存修改强制退出。

在所有文件添加完成后,我们查看仓库状态发现显示 On branch master nothing to commit, working tree clean ,就是说所有的文件修改都提交了,工作树很干净了。

连接远程git仓库

现在我们本地 git 仓库已经建立好了,已经可以管理本地文件了,但这样是不够的,git 最大的功能还在于多人协作,所以需要有一个远端仓库服务器,这样在不同电脑终端都可以进行工作了。

现在最简单的就是在 git 托管平台建一个仓库,把本地仓库托管到git平台,最常用的有 githubcodingoschina ,这里以国内的 coding 为例。

注册并创建远程仓库

打开 Coding 的地址 https://coding.net/ ,完成注册、登陆后,新建一个项目 git-test ,不要勾选创建 README.md 选项,项目创建好后,将仓库的地址复制下来,我的仓库地址是 https://git.coding.net/wqf31415/git-test.git

给本地仓库添加远程仓库地址

回到本地下打开 git bash ,进入本地 git 仓库目录,执行下述命令,最后面就是刚才复制的远端仓库地址。

1
git remote add origin https://git.coding.net/wqf31415/git-test.git

注意,命令中的 origin 是对远程仓库的命名,可以更改,添加完成后也可以使用 git 命令修改。

可以给一个本地仓库添加多个远程仓库,提交时使用设置的远端仓库名标识。

将本地修改内容提交到远程仓库

git push -u origin master 将本地仓库文件推送到远端仓库,第一次要加 -u ,以后就直接运行 git push origin master 。在提交到远程仓库时,需要输入用户名、密码,可以设置用户名和保存密码,详见文章结尾。

origin 是远程仓库名, master 是远程仓库分支名。可以将内容提交到不同远程仓库的不同分支。

将远端仓库克隆到本地

运行 git clone https://git.coding.net/wqf31415/git-test.git 将远端仓库克隆到本地,后面 url 是git仓库地址。

这样就可以把一个新的远程仓库代码下载到本地,然后就可以在本地愉快的写代码了。

在本地代码编辑完成后,依次运行下列代码将修改提交到远端仓库:

1
2
3
git add .
git commit -m 'change description'
git push origin master

当远程仓库有更新时,可以使用 git pull 命令将更新内容拉取下来:

1
git pull origin master

总结

git 是一个很有用的工具,其用途不仅仅在于程序员控制代码版本,也可以用于多人协作创作小说、剧本等,在平时写文档的时候用来保存历史版本,或多版本管理非常方便,需要的时候还可以把不同分支内容合并到一起。只要是文本形式的文件,都可以很好的使用 git 来做版本控制,但对于其它非文本文件,虽然不是很好控制内容,但对整个项目的文件来说还是很好用的,比如我也用 Construct 2 创建的 h5 游戏项目,就可以使用 git 来管理项目版本,可以打分支尝试不同的设计,但是合并分支功能可能就会出问题。

常用命令

本篇文章主要记述了 git 的安装和最基本使用,涉及到的 git 指令如下:

git --version 查看 git 版本

git config --global user.name "username" 设置全局的 git 用户,加 --global 将设置为全局配置

git config --global user.email user@xxx.xx 设置全局的 git 邮箱

git config --list 查看 git 配置

git config user.name 查看用户名

git init 初始化 git 仓库

git status 查看仓库状态

git add 1.txt 添加 1.txt 文件到仓库,让仓库跟踪该文件

git add *.html 添加所有 .html 文件到仓库

git add . 添加所有文件到仓库

git rm cached 1.txt 从已添加文件中删除 1.txt 文件

git commit -m 'some information' 提交文件,并添加一些描述信息

git commit 提交文件,打开 vim 窗口输入描述信息

git remote add origin https://git.coding.net/wqf31415/git-test.git 为本地仓库添加远端仓库地址

git push -u origin master 将本地仓库推送到远端仓库的 master 分支,第一次要加 -u ,以后不加

git clone https://git.coding.net/wqf31415/git-test.git 克隆远端仓库到本地

git pull origin master 拉取远端仓库的 master 分支,并自动合并到当前分支

git 保存密码命令

git config --global credential.helper store 长期存储 git 服务器的密码

git config --global credential.helper cache 设置 git 保存密码,有效期 15 分钟

git config credential.helper 'cache --timeout=3600' 设置 git 保存密码,有效期 3600 秒