git仓库的基本概念和流程以及一些基本命令

发布于:2024-12-23 ⋅ 阅读:(12) ⋅ 点赞:(0)

什么是版本库?版本库又名仓库,英文名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的工作流程是:

  1. 克隆远程库:从远程库上克隆完整的Git仓库(包括代码和版本信息)到本地;
  2. 在本地库上修改代码:在本地库上根据不同的开发目的,创建分支,修改代码;
  3. 提交到分支:在本地分支上提交代码;
  4. 把修改合并到本地主分支:在本地库上提交更新,也就是说,把修改合并到本地主分支;
  5. 把远程库合并到本地主分支:把远程库上的最新代码fetch下来,跟本地主分支合并,如果存在冲突,那么解决冲突。
  6. 把本地主分支提交到远程库:生成补丁(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会根据这些模式规则来判断是否将文件添加到版本控制中。

案例:

1. 在需要创建 .gitignore 文件的文件夹, 右键选择Git Bash 进入命令行,进入项目所在目录。

2. 输入 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