作为一名人类高质量程序员,是一定要会使用Git的,毕竟现在没几个公司不用Git了,本文是Git系列第一篇文章。
Git是一款分布式版本控制系统,它允许每个程序员的电脑上都有一个版本库,这样即使没有网络也可以保证代码可以继续开发。除此之外,Git对于分支管理的支持也使它成为了优秀的版本管理系统。
下载安装Git
国内访问Git官网下载Git速度可能比较慢,因此推荐使用淘宝镜像下载。这里选择最新的v2.33.1.windows.1版本为例,进入该目录,点击Git-2.33.1-64-bit.exe进行下载。安装过程只需一直选择next即可。
安装完毕,在桌面上右键Git Bash Here
弹出命令行窗口,在命令行输入用户名和邮箱:
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
如下图所示:
这样下载安装Git的部分就结束了。
创建本地仓库
我们尝试用Eclipse创建一个新项目,打开项目所在目录,打开命令行窗口。输入以下命令:
$ git init
此时我们就创建好了一个仓库,这个仓库是一个Eclipse项目,仔细看的话会发现项目根目录多了一个名为.git
的隐藏文件夹。
忽略部分文件
当我们的项目中需要忽略一些不需要添加到仓库中的文件时(比如IDE自动生成的文件以及一些中间文件),我们可以在项目根目录下新建一个.gitignore
文件,并在其中写入我们需要忽略的文件及文件夹,就可以避免将其添加到本地仓库中。
以我们当前创建的Eclipse项目为例,Github为我们提供了一份Eclipse专用的.gitignore
文件,我们只需要把文件中的内容复制到我们的.gitignore
文件中即可,下面是文件的详细内容:
.metadata
bin/
tmp/
*.tmp
*.bak
*.swp
*~.nib
local.properties
.settings/
.loadpath
.recommenders
# External tool builders
.externalToolBuilders/
# Locally stored "Eclipse launch configurations"
*.launch
# PyDev specific (Python IDE for Eclipse)
*.pydevproject
# CDT-specific (C/C++ Development Tooling)
.cproject
# CDT- autotools
.autotools
# Java annotation processor (APT)
.factorypath
# PDT-specific (PHP Development Tools)
.buildpath
# sbteclipse plugin
.target
# Tern plugin
.tern-project
# TeXlipse plugin
.texlipse
# STS (Spring Tool Suite)
.springBeans
# Code Recommenders
.recommenders/
# Annotation Processing
.apt_generated/
.apt_generated_test/
# Scala IDE specific (Scala & Java development for Eclipse)
.cache-main
.scala_dependencies
.worksheet
# Uncomment this line if you wish to ignore the project description file.
# Typically, this file would be tracked if it contains build/dependency configurations:
#.project
经过上面的操作,版本管理就会忽略上面这些文件然后才进行管理。
添加文件到版本库
前面的内容虽然我们已经创建了一个Git仓库,但是我们还没有把文件放入到版本库中。因此我们下面将文件放入到版本库中,我们在前面的Eclipse项目中创建java文件用于演示添加文件。
我们输入以下命令进行将文件添加到暂存区:
$ git add .
解释一下,一般我们需要进行代码版本提交都要分为两步:
- 使用
git add
命令将修改的文件添加到暂存区。 - 使用
git commit
命令将暂存区的修改内容进行提交。
所以我们完成了上面的git add .
之后还需要继续使用下面的命令保证本次顺利提交:
$ git commit -m "first commit"
其中-m
在git commit
里表示本次提交内容的一个说明。
Git结构
Git的结构一般是包含工作区和版本库,工作区很好理解,就是能够看到的文件区域,根目录下除了隐藏文件夹.git
之外的其他内容都在工作区,.git
目录是版本库。
前面说的git add
命令实际上是将文件的修改内容放到版本库的暂存区中,而git commit
则是将暂存区修改的文件提交到当前分支,当执行完git commit
之后暂存区也就被清空。