什么是版本库?版本库又名仓库,英文名repository,你可以简单的理解一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改,删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻还可以将文件"还原"。
一.git仓库的基本概念
1.远程仓库(Remote):也叫作资源库,是远程机器上的代码库,用于做不同版本库文件交换更新。如Gitlab,GitHub,gitee。
2.本地库(Repository):是用户在本地创建的目录,拥有远程库的一个快照,由工作区和版本库构成。
- 工作区(Workspace):
本地库的根目录中除.git目录以外的内容,存储内容的实际文件。
- 暂存区(stage/Index):
也叫做缓存区,暂存信息存放在.git目录"下的index文件(.git/index)中,用于临时保存内容的修改;
- 版本库(.git目录):
是本地库的根目录中的一个隐藏目录.git,用于记录版本信息,Git进行版本控制所需要的文件,则都放在.git文件夹中;
3.分支(Branch):
本地库中默认创建一个主(master)分支,分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作。
本地库和远程库的关系
开发人员通过Git命令来管理代码,最常用的6个命令如下图所示:
二.git仓库的工作流程
从一般开发者的角度来看,使用Git的工作流程是:
- 克隆远程库:从远程库上克隆完整的Git仓库(包括代码和版本信息)到本地;
- 在本地库上修改代码:在本地库上根据不同的开发目的,创建分支,修改代码;
- 提交到分支:在本地分支上提交代码;
- 把修改合并到本地主分支:在本地库上提交更新,也就是说,把修改合并到本地主分支;
- 把远程库合并到本地主分支:把远程库上的最新代码fetch下来,跟本地主分支合并,如果存在冲突,那么解决冲突。
- 把本地主分支提交到远程库:生成补丁(patch),把补丁发送给远程库。
三.git命令
1.创建版本库:git init
创建一个版本库也非常简单,如下我是D盘下 目录下新建一个testGit版本库。
右键通过命令行的方式打开窗口v
通过命令 git init 把这个目录变成git可以管理的仓库,如下
Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master ,以及指向master的一个指针叫HEAD。
这时候你当前testgit目录下会多了一个.git的目录,这个目录是Git来跟踪管理版本的,没事千万不要手动乱改这个目录里面的文件,否则,会把git仓库给破坏了。.git里面内容如下:
2.添加文件和修改提交文件
2.1创建和查看文件: vi readme.txt cat readme.txt
创建文件readme.txt, 此刻文件在工作区(WorkSpace)
通过git status可以查看文件追踪的情况
2.2 添加到暂存区里面去:git add readme.txt
我们发现添加到暂存区的时候会有警告出现。不过没关系,是换行符的警告。
我们可以看到readme.txt目前处于暂存区
提交多个文件:git add test2.txt test3.txt
添加工作区所有文件到暂存区:git add .(这个最常用)
撤销回工作区:git rm --cached readme.txt
2.3提交文件到主分支:git commit -m 'first commit'
被上传到分支的文件修改后会自动来到工作区进行修改
3.版本回退
3.1日志查看:git log
git log命令显示从最近到最远的显示日志,我们可以看到最近三次提交
如果嫌上面显示的信息太多的话,我们可以使用命令 git log pretty=oneline
3.2版本回退和撤销:git reset --hard HEAD^
那么如果要回退到上上个版本只需把HEAD^ 改成 HEAD^^
如果要回退到前100个版本的话,使用上面的方法肯定不方便,我们可以使用下面的简便命令操作:git reset --hard HEAD~100
3.3回退撤销:git reflog
4.删除文件:git rm test.txt
四.Git配置信息Config
1.config概述
在git中,我们使用git config 命令用来配置git的配置文件,git配置级别主要有以下3类:
1、仓库级别 local 【优先级最高】
2、用户级别 global【优先级次之】
3、系统级别 system【优先级最低】
git 仓库级别对应的配置文件是当前仓库下的.git/config
git 用户级别对应的配置文件是用户宿主目录下的~/.gitconfig
git系统级别对应的配置文件是git安装目录下的 /etc/gitconfig
git config --local -l
git config --global -l
git config --system -l
2.config修改
演示修改用户名和邮箱:
git config --global user.name "renliang"
git config --global user.email "renliang@126.com"
五.gitignore文件
有些文件无需纳入git的管理,也不希望它们总出现在未跟踪文件列表,这些文件通常是日志文件、临时文件、编译产生的中间文件、工具自动生成的文件等等。
此时我们可以创建一个名为**.gitignore** 的文件,列出要忽略的文件模式,Git会根据这些模式规则来判断是否将文件添加到版本控制中。
案例:
-
在需要创建 .gitignore 文件的文件夹, 右键选择Git Bash 进入命令行,进入项目所在目录。
-
输入 touch .gitignore 在文件夹就生成了一个".gitignore"文件
3.然后用编辑器打开这个文件进行编辑就行了
.gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。所以一定要养成在项目开始就创建.gitignore文件的习惯。
java开发通用模板:
#java
*.class
#package file
*.war
*.ear
*.zip
*.tar.gz
*.rar
#maven ignore
target/
build/
#eclipse ignore
.settings/
.project
.classpatch
#Intellij idea
.idea/
/idea/
*.ipr
*.iml
*.iws
# temp file
*.log
*.cache
*.diff
*.patch
*.tmp
# system ignore
.DS_Store
Thumbs.db