GIT使用

GIT学习笔记

一、什么是GIT

Git是一个版本管理控制系统(缩写VCS),它可以在任何时间点,将文档的状态作为更新记录保存起来,也可以在任何时间点,将更新记录恢复回来。

在开发中,Git已成为现在主流的一种代码托管技术(版本管理工具),基本上大多数的公司都在使用Git进行协同开发。很多代码托管平台也是基于Git来实现的。

二、GIT和SVN的区别

SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器得到最新的版本,然后干活,干完后,需要把自己做完的推送到中央服务器。集中式版本控制系统是必须联网才能工作,如果在局域网还可以,带宽够大,速度够快,如果在互联网下,如果网速慢的话,并不方便。

Git是分布式版本控制系统,它就没有中央服务器的,每个人的电脑就是一个完整的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的电脑上。在多个人如何协作时只需把各自的修改推送给对方,就可以互相看到对方的修改了。

三、GIT底层结构

1、工作区 (workspace)

当前工作空间,也就是当前能在本地文件夹下面看到的文件结构。初始化工作空间或者工作空间 clean 的时候,文件内容和 index 暂存区是一致的,随着修改,工作区文件在没有 add 到暂存区时候,工作区将和暂存区是不一致的。

2、 暂存区 (index)

老版本概念也叫 Cache 区,是文件暂时存放的地方,所有暂时存放在暂存区中的文件将随着一个 commit 一起提交到 local repository 此时 local repository 里面文件将完全被暂存区所取代。

3、本地仓库 (local repository)

git 是分布式版本控制系统,和其他版本控制系统不同的是他可以完全去中心化工作,可以不用和中央服务器 (remote server) 进行通信,在本地即可进行全部离线操作,包括 log,history,commit,diff 等等。完成离线操作最核心是因为 git 有一个几乎和远程一样的本地仓库,所有本地离线操作都可以在本地完成,等需要的时候再和远程服务进行交互。

4、 远程仓库 (remote repository)

中心化仓库,所有人共享,本地仓库可以和远程仓库进行交互,也就能将其他所有人内容更新到本地仓库把自己内容上传分享给其他人。结构大体和本地仓库一样。

四、基本操作

1、初始化git仓库

git 复制代码
git init 本地目录

将本地的某个路径作为本地仓库时,需要执行此命令,会在当前目录下生成一个.git的隐藏文件,.git文件夹下的目录如下

分支 类型 说明
config 文件 配置文件
objects 目录 存储所有Git的数据对象
HEAD 文件 指定当前分支
info 目录- 存放项目信息,默认包含一个全局exclude文件, 用来放置不希望记录在.gitignore 中的忽略模式
description 文件 仅供GitWeb 程序使用
hooks 目录 存放可在某些指令前后触发运行的钩子脚本(hook s),默认包含一些脚本样例
refs 目录 存储各个分支指向的目标提交
branches 目录

2、从git远程仓库拷贝项目

git 复制代码
git clone git仓库的地址 本地的文件位置

类似于SVN的checkout

3、配置用户信息

有的时候我们不仅仅服务于一个项目,在公司需要用公司的个人信息,而在外部需要设置为个人的邮箱信息(虽然没什么实质性的作用,但总是比较规范的)

git 复制代码
git config --global user.name '用户名'
git config --global user.email '邮箱'

4、将本地文件添加到缓存区

将某个文件添加到缓存区

git 复制代码
git add 文件路径

将某个后缀的文件添加到缓存区

git 复制代码
git add *.java

5、查看文件状态

git 复制代码
git status 文件名

6、放弃未暂存的文件修改

git 复制代码
git checkout --文件名

用暂存的文件替换掉本地文件

7、提交文件

git 复制代码
git commit 文件名 -m '提交说明'

其中 -m 可以省略

直接提交本地文件,并缓存

git 复制代码
git commit 文件名 -am '提交说明'

8、查看更新的详细信息

查看尚未缓存的改动

git 复制代码
git diff 文件名

查看已缓存的改动

git 复制代码
git diff --cached 文件名

查看已缓存的与未缓存的所有改动

git 复制代码
**git diff HEAD 文件名

查看摘要

git 复制代码
git diff --stat 文件名

9、取消缓存

git 复制代码
git reset HEAD 文件名

10、删除文件

从git仓库删除文件

git 复制代码
git rm 文件名

从缓存区删除文件

git 复制代码
git rm --cashed 文件名

11、文件重命名

git 复制代码
git mv 文件名 新文件名

五、分支管理

1、查看分支

git 复制代码
git branch

2、创建分支

git 复制代码
git branch 分支名

3、切换分支

git 复制代码
git checkout 

4、合并分支

将某个分支合并到当前分支

git 复制代码
git merge 分支名

5、删除分支

git 复制代码
git branch -d 分支名

六、远程仓库

1、添加远程仓库到本地

git 复制代码
git remote 远程仓库的本地名称(自定义) 远程仓库地址

查看本地添加的远程仓库名

git 复制代码
git remote

2、查看远程分支

git 复制代码
git branch --remote

3、从远程仓库获取数据

git 复制代码
git fetch 远程仓库别名

将从远程仓库获取的数据合并到某个分支

git 复制代码
git merge 远程仓库别名/分支名

从远程仓库获取数据并合并到本地分支

git 复制代码
git pull 远程仓库别名 分支名

4、推送新的分支到远程仓库

git 复制代码
git push 远程仓库别名 分支名

5、删除远程仓库

git 复制代码
git remote 远程仓库别名
相关推荐
落落鱼20139 小时前
cenos如何升级git到2以上版本
git
Domain-zhuo9 小时前
Git常用命令
前端·git·gitee·github·gitea·gitcode
sin22019 小时前
git自己模拟多人协作
git
大猫和小黄14 小时前
Windows、CentOS环境下搭建自己的版本管理资料库:GitBlit
linux·服务器·windows·git
孤水寒月14 小时前
Git忽略文件.gitignore
git·elasticsearch
DN金猿1 天前
git命令恢复/还原某个文件、删除远程仓库中的文件
git
DWei_GaGa1 天前
Git:查看分支、创建分支、合并分支
git
涵信1 天前
Windows11 安装 Ubuntu-20.04,同时安装配置 zsh shell,配置 git 别名(alias),大大提高开发效率
linux·git·ubuntu·bash
喝鸡汤1 天前
一起学Git【第五节:git版本回退】
git
web Rookie1 天前
Git的简介
git