详解git基本操作和指令

基本操作

一、基本操作命令

  1. 创建进入空文件夹
  2. 右键 -> 点击 Git Bash Here 启动命令行(MAC 在当前文件夹打开终端)
  3. git init 仓库初始化
  4. 创建一个初始化文件 index.html
  5. git add index.html 将文件加入到暂存区
  6. git commit -m '注释' 提交到仓库 m 是 message 单词的缩写

二、.git 目录

  • hooks 目录包含客户端或服务端的钩子脚本,在特定操作下自动执行。
  • info 包含一个全局性排除文件,可以配置文件忽略
  • logs 保存日志信息
  • objects 目录存储所有数据内容,本地的版本库存放位置
  • refs 目录存储指向数据的提交对象的指针(分支)
  • config 文件包含项目特有的配置选项
  • description 用来显示对仓库的描述信息
  • HEAD 文件指示目前被检出的分支
  • index 暂存区数据
  • 切记: 不要手动去修改 .git 文件夹中的内容*

三、版本库的三个区域

  • 工作区(代码编辑区):代表本地开发代码的地方
  • 暂存区(修改待提交区) :代表本地仓库暂时保管代码的地址
  • 仓库区(代码保存区):代表代码进入本地版本控制

常用命令

一、常用命令

git status 版本状态查看

红色:说明文件位于工作区

绿色:说明文件位于暂存区

没有体现,说明位于版本区

git add -A 添加所有新文件到暂存区(或者git add . git add *

使用git restore可以丢弃工作区的改动

git commit -m '注释 ' 提交修改并注释

使用git restore --staged <文件>可以取消暂存

git diff 查看工作区与暂存区的差异(不显示删除或新增文件) 显示做了哪些修改

//解读结果
lipeihuadeMacBook-Pro% git diff
 //进行比较的是,index.html(即变动前)index.html(即变动后)。
 diff --git a/index.html b/index.html
 //表示两个版本的git哈希值
 index 16158b4..61045cd 100644
 //"---"表示变动前的版本
 --- a/index.html
 //"+++"表示变动后的版本
 +++ b/index.html
 //代表的意思是源文件的1-2行与目标文件的1-5行有差异,下面才是具体的差异信息;
 @@ -1,2 +1,5 @@
 //-红色部分表示减少的部分,+绿色部分表示增加的部分
 index.html
 -no 1
 +
 +
 +
 +再次修改
 //\ No newline at end of file 最后一行没有换行
 \ No newline at end of file

git diff --cached 查看暂存区与仓库的差异

二、历史版本回滚

2.1查看历史版本

git log

默认不用任何参数的话,git log 会按提交时间列出所有的更新,最近的更新排在最上面。每次更新都有一个 SHA-1 校验和、作者的名字 和 电子邮件地址、提交时间,最后缩进一个段落显示提交说明。

git log --oneline

如果内容偏多, 需要使用方向键上下滚动, 按 q 退出

git log 命令有一个选项,可以用来更改仓库信息的显示方式。该选项为 --oneline.

每行显示一个 commit显示 commit 的 SHA 的前 7 个字符显示 commit 的消息

2.2根据版本号进行回滚

版本回退,只是本地的。不会影响git库中的内容。

git reset --hard b815fd5a6ae655b521a31a9

进行版本回退时,不需要使用完整的哈希字符串,前七位即可

版本切换之前,要提交当前的代码状态到仓库

git reflog

如果在回退以后又想再次回到之前的版本,git reflog 可以查看所有分支的所有操作记录(包括commit和reset的操作),包括已经被删除的commit记录,git log则不能察看已经删除了的commit记录

2.3其他回滚(了解)

git reset --hard HEAD^ 回滚到上个版本
git reset --hard HEAD^^ 回滚到上上个版本
git reset --hard HEAD~100 回滚到100个版本之前

配置忽略文件

一、仓库中没有提交该文件

项目中有些文件是不需要进入版本库中,比如编辑器的配置。Git 中需要创建一个文件 .gitignore,一般与 .gitignore 同级目录。

# 忽略所有的 .idea 文件夹
.idea
# 忽略所有以 .test 结尾的文件
*.test
# 忽略 node_modules 文件和文件夹
/node_modules

二、仓库中已经提交该文件

对于已经加入到版本库的文件,可以在版本库中删除该文件

git rm --cached .idea
git rm --cached ./css/go.css

然后在 .gitignore 中配置忽略

.idea
/css/go.css

add 和 commit 提交即可

分支

分支是 Git 重要的功能特性之一,开发人员可以在主开发线的基础上分离出新的开发线。

创建分支

name 为分支的名称

git branch name

查看分支

git branch

切换分支

git checkout name

合并分支

git merge name

删除分支

git branch -d name

切换并创建分支

git checkout -b name

注意: 每次在切换分支前 提交一下当前分支

冲突

当多个分支修改同一个文件后,合并分支的时候就会产生冲突。冲突的解决非常简单,将内容修改为最终想要的结果,然后继续执行 git add 与 git commit 就可以了。

到此这篇关于详解git基本操作和指令的文章就介绍到这了,更多相关git基本操作和指令内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Git 的基本操作、开发流程、实用技巧总结(陈彦贝)

    Git 是什么? Git 是一个分布式的代码管理容器,本地和远端都保有一份相同的代码. Git 仓库主要是由是三部分组成:本地代码,缓存区,提交历史,这几乎是所有操作的本质,但是为了文章更加简单易懂,就不围绕这块展开了,有兴趣的可以去了解下. 开门见山,我们直接来说说 Git 有哪些常见的操作. Git 有哪些常规操作? 我们简单说说Git有哪些常规操作,能够让我们应付简单的开发需求. 克隆代码 ✦ 克隆远端代码 git clone http://git.code.oa.com/QCFE/sql

  • GIt的基本操作详解

    目录 基本操作 安装与配置 init add与commit clone vim status diff rm(删除文件) 恢复文件 MV(重命名) Git分支操作 查看历史记录 添加标签 清屏 基本操作 安装与配置 $ git config --global user.name "runoob" $ git config --global user.email test@runoob.com $ git config --global core.editor Vim//指定文本编辑器

  • Git本地仓库基本操作及技巧

    Git是什么? 一个分布式版本控制系统,和SVN类似,但远比SVN强大的一个版本控制系统 ①Git可以方便的在本地进行版本管理,如同你本地有一个版本管理服务器一样 我们可以选择在合适的时间将本地版本推送到统一的版本管理服务器 ②Git每次会提取整个代码仓库的完整镜像,相当于对整个代码仓库都进行了一次备份,这样计时版本服务器除了问题,我们可以直接采用本地仓库恢复!结合本地版本管理功能,远程版本管理服务器出问题了,我们依然能继续写自己的代码,当他恢复的时候我们再提交我们的本地版本! Git研发初期是

  • Git 教程之基本操作详解

    Git 基本操作 Git 的工作就是创建和保存你项目的快照及与之后的快照进行对比.本章将对有关创建与提交你的项目快照的命令作介绍. 获取与创建项目命令 git init 用 git init 在目录中创建新的 Git 仓库. 你可以在任何时候.任何目录中这么做,完全是本地化的. 在目录中执行 git init,就可以创建一个 Git 仓库了.比如我们创建 runoob 项目: $ mkdir runoob $ cd runoob/ $ git init Initialized empty Git

  • Github代码常用指令(小结)

    下面是我比较经常用得Github常用的指令. 一. 初始化仓库上交文件相关操作 git init 初始化一个Git仓库 git add <filename> 添加文件到缓存 git add . 添加所有文件 git commit -m"注释" 上传 git push-u origin master push上仓库 二,普通上传操作 git add <filename> 添加文件到缓存 git add . 添加所有文件 git commit -m"注释&

  • 详解git基本操作和指令

    基本操作 一.基本操作命令 创建进入空文件夹 右键 -> 点击 Git Bash Here 启动命令行(MAC 在当前文件夹打开终端) git init 仓库初始化 创建一个初始化文件 index.html git add index.html 将文件加入到暂存区 git commit -m '注释' 提交到仓库 m 是 message 单词的缩写 二..git 目录 hooks 目录包含客户端或服务端的钩子脚本,在特定操作下自动执行. info 包含一个全局性排除文件,可以配置文件忽略 log

  • 详解git中配置的.gitignore不生效的解决办法

    详解git中配置的.gitignore不生效的解决办法 前言: 通常我们希望放进仓库的代码保持纯净,即不要包含项目开发工具生成的文件,或者项目编译后的临时文件.但是,当我们使用git status查看工作区状态的时候,总会提示一些文件未被track.于是,我们想让git帮助我们忽略这些文件,不再提醒. 庆幸的是,git已经考虑到这点了.我们可以在项目的根目录下建立一个.gitignore的文件,该文件用来配置哪些文件或者目录不被track的.规则很简单,就在该文件中,写下你不想被track的文件

  • 详解git无法pull仓库refusing to merge unrelated histories

    详解git无法pull仓库refusing to merge unrelated histories 本文讲的是把Git在最新2.9.2,合并pull两个不同的项目,出现的问题如何去解决 fatal: refusing to merge unrelated histories 我在Github新建一个仓库,写了License,然后把本地一个写了很久仓库上传. 先pull,因为两个仓库不同,发现refusing to merge unrelated histories,无法pull 因为他们是两个

  • 详解git的基本使用方法

    什么是git? git是目前世界上最先进的分布式版本控制系统. git与SVN的最主要区别? SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而工作的时候用的都是自己的电脑,所以开始工作之前需要从中央服务器那里获取最新的版本,然后开始工作,工作完后,需要把自己所做的工作推送到中央服务器.集中式版本控制系统必须要联网才能工作,如果在局域网中,有足够的宽带,运行速度够快,而在互联网环境下,网速慢通常会导致服务难以进行. git是分布式版本控制系统,没有中央服务器,每个人的电脑是一个完整的版

  • 详解git的分支与合并的两种方法

    如何将两个分支合并到一起.就是说我们新建一个分支,在其上开发某个新功能,开发完成后再合并回主线. 1.   git merge 咱们先来看一下第一种方法 -- git merge 在 Git 中合并两个分支时会产生一个特殊的提交记录,它有两个父节点.翻译成自然语言相当于:"我要把这两个父节点本身及它们所有的祖先都包含进来."下面具体解释. # 创建新分支 bugFix git branch bugFix # 切换到该分支 git checkout bugFix # 提交一次 git c

  • 详解git合并冲突解决方法

    1.git merge冲突了,根据提示找到冲突的文件,解决冲突 如果文件有冲突,那么会有类似的标记 2.修改完之后,执行git add 冲突文件名 3.git commit 注意:没有-m选项 进去类似于vim的操作界面,把conflict相关的行删除掉 4.直接push就可以了,因为刚刚已经执行过相关merge操作了 相关的操作如下 冲突产生 [root@Monitor Demo]# git branch #当前在master分支下 * master psr/psr-01 psr/psr-02

  • 详解Pandas 处理缺失值指令大全

    前言 运用pandas 库对所得到的数据进行数据清洗,复习一下相关的知识. 1 数据清洗 1.1 处理缺失数据 对于数值型数据,分为缺失值(NAN)和非缺失值,对于缺失值的检测,可以通过Python中pandas库的Series类对象的isnull方法进行检测. import pandas as pd import numpy as np string_data = pd.Series(['Benzema', 'Messi', np.nan, 'Ronaldo']) string_data.is

  • 详解git merge 与 git rebase的区别

    前言 其实这个问题困扰我有一段时间,相信也有人和我一样有这个困扰,网上已有很多这种解释了,但是要么就是无图,要么就是解释的很乱,没太看懂,经过自己对git的使用,加上向同事请教,算是理解了这个问题,所以写下来分享一下,我尽量详细说明 merge与rebase的区别 假设我们有如下图一所示仓库,该仓库有master和develop两个分支,且develop是在(3.added merge.txt file)commit处从master拉出来的分支. merge 假设现在HEAD在(6.added

  • 详解git reset --hard 和 git reset --soft区别

    有时候,进行了错误的提交,但是还没有push到远程分支,想要撤销本次提交,可以使用git reset –-soft/hard命令. 1.二者区别: git reset –-soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级.如果还要提交,直接commit即可: git reset -–hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容,撤销的commit中所包含的更改被冲掉: 2.具体用法如下: 使用git log命令查看本地的所有提交 现在想

  • 详解git reset 加不加 --hard的区别

    通常我们提交代码一般都是 git add ,git commit -m,   git push的这么个流程.添加到暂存区,提交到git库生成版本号,push到远程仓库以供他人可以使用.这是一个完整的且非常顺利的流程.但是往往实际开发中并不是这么顺利,总会出现这样或那样的问题. git reset就是当我们提交了错误的内容后进行回退使用的命令. git reset 版本号,就是回退到该版本号上. 通常我们使用 git reset HEAD就是回退到当前版本.git reset HEAD^回退到上一

随机推荐