git全局配置及文件改变状态详解

本文git为1.9.6版本:

一、git全局配置

二、git初始化本地仓库

三、git文件状态详解

四、git文件撤销、恢复操作

git提交流程层次如下:

git全局配置及文件改变状态详解


git repository 视为线上code集中管理服务器;也就是我们的code最后的位置;

git staging area 视为我们本地的code集中管理服务器,可认为code的中间的暂留区(以相对repository来说);

git working directory 视为我们本地编辑的code,也就是代码编辑处;

1:全局配置

leo@LEO-PC /d/User/leo/Desktop/git (master)
$ git config --global user.name "lansgg"

leo@LEO-PC /d/User/leo/Desktop/git (master)
$ git config --global user.email "coffee_lanshan@sina.com"

这里配置 --global选项其实就是在修改家目录下的.getconfig文件

如我的:

C:\Users\leo\.getconfig

内容:

[user]
    name = lansgg
    email = coffee_lanshan@sina.com
[color]
    ui = true
[core]
    autocrlf = true
    excludesfile = C:\\Users\\leo\\Documents\\gitignore_global.txt

当我们修改此文件,比如将name=test (内容已经修改)

$ git config --get user.name

git全局配置及文件改变状态详解

这里的用户名及邮件地址都是在提交代码的时候进行标识的,显示提交人的信息;

2:初始化本地git仓库

本地新建一个目录;执行git init ;

$ mkdir git
$ git init

执行后的变化就是多了一个.git目录;

leo@LEO-PC /d/User/leo/Desktop/git (master)
$ ls -a .git
.   COMMIT_EDITMSG  config       hooks  info  objects
..  HEAD            description  index  logs  refs

leo@LEO-PC /d/User/leo/Desktop/git (master)
$

.git 目录,其中存放的是我们所提交的文档索引内容,Git 可基于文档索引内容对其所管理的文档进行内容追踪,从而实现文档的版本控制。.git目录位于工作目录内。

index(索引):将工作目录下所有文件(包含子目录)生成快照,存放到一个临时的存储区域,Git 称该区域为索引。

3、git文件状态详解

3.1、现在新建我们的code;

leo@LEO-PC /d/User/leo/Desktop/git (master)
$ touch README.txt

leo@LEO-PC /d/User/leo/Desktop/git (master)
$ cat hello.rb
puts "hello world!"

我们要将he.rb 、README 提交到本地git repository;

3.2、首先查看文件的状态

$ git status

git全局配置及文件改变状态详解


$ git status -s

git全局配置及文件改变状态详解


根据输出信息可以看出,README.txt hello.rb 两个文件处于master branch(主分支),这两个文件处于未追踪文件,也就当我们执行git commit(用于提交到图中的仓库)命令的时候不会将他们提交到git repository;

上图 -s 表示简要信息;( ?? )两个问号也有很重要的意义;

第一个 ? 主要表示staging area 和 repository 两个区域间的文件变化,一般会有两个字母来表示(A、M <绿色>);A  表示此文件已经是在追踪文件,M 表示此文件已经在staging area区域修改,还没有提交到repository。

第二个 ? 主要表示working directory 和 staging area 两个区域间的文件变化,M <红色> 表示此文件已经working directory区域修改,还没有提交到staging area

下面开始演示:git add 表示将文件进行追踪;

$ git add README.txt
$ git add hello.rb

再次查看文件状态

$ git status -s

git全局配置及文件改变状态详解


可以看到两个文件已经处于 A 状态 (追踪)现在这两个文件处于staging area区域; changes to be committed 可以进行提交了;输出信息提示,可以使用git reset HEAD <file> 将文件恢复于未追踪状态;

git全局配置及文件改变状态详解


恢复到已经追踪的状态,进行提交测试;

$ git commit -m "first commit"     #-m 表示提交此代码时进行描述;我们这里描述为“first commit”

git全局配置及文件改变状态详解


可以看到wording directory clean 已经将此两个文件提交到repository;(从staging area区域),并查看文件状态时,不在输出任何东西

3.2 修改本地code,再查看文件状态

$ echo 'puts "hello world!" '>> hello.rb
$ git status -s

git全局配置及文件改变状态详解


第二个 ? 的地方出现了M <红色> 表示此文件已经在working directory区域修改;输出信息提示,hello.rb文件已经modified ; 命令  git add && git checkout && git commit -a  (图示都有) 下面讲;

如何将此文件提交到repository

$ git add hello.rb
$ git commit -m "second commit" hello.rb

git全局配置及文件改变状态详解


或者使用:

$ git commit -a -m "second commit"

此命令将跳过git add 这一步~

4、撤销、恢复

4.1、修改本地working directory 的code ;然后撤销修改,也就说从staging area区域取出此code覆盖当前working directory的code;

测试如下:

$ echo 'puts "hello world!"' >> hello.rb     #修改本地code
$ git status -s                              #查看文件的状态,有差异
$ git checkout hello.rb                      #从staging area区域取出此code
$ git status -s                              #再次查看该文件的状态,无差异,并且代码恢复到了之前的代码

git全局配置及文件改变状态详解


4.2、修改本地working directory的code,并且进行追踪(add 到 staging area区域);然后我们想撤销本地code的修改,那我们可以从repository仓库拉出此code覆盖到staging area,然后再从staging area区域取出覆盖到working directory区域;测试如下:

$ echo 'puts "hello world!"' >> hello.rb
$ git status -s
$ git add hello.rb
$ git status -s
$ git reset hello.rb
$ git status -s
$ git checkout hello.rb
$ git status -s                     # 每一步都进行了文件状态差异的核对;

git全局配置及文件改变状态详解

我们也可以不用这么麻烦,可以直接从 repository 区域拉取出来直接覆盖到 working directory 区域:

$ echo 'puts "hello world!"' >> hello.rb
$ git status -s
$ git add hello.rb
$ git status -s
$ git checkout HEAD hello.rb
$ git status -s

git全局配置及文件改变状态详解


可以看到已经从git repository 拉取此文件并进行了覆盖~

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Git安装和使用 Git安装和使用 刚开始用git的小白适用,,转自http://www.cnblogs.com/qijunjun/p/7137207.html 实际项目开发中,我们经常会用一些版本控制器来托管自己的代码,今天就来总结下Git的相关用法,废话不多说,直接开写。 目的:通过Git管理g
fatal: remote origin already exists.解决方法 第一个问题git remote add origin**************fatal: remote origin already exists.(报错远程起源已经存在。)上网查了下,有很多小白遇到过这个问题,以
git常用命令(二)查看历史记录 git log [--pretty=oneline] [ --oneline] / reflog Eniac-W 于 2020-10-18 18:12:38 发布 2368 收藏 3分类专栏: git 文章标签: git版权 git专栏收录该内容10 篇文章0 订阅
git之如何把本地文件上传到远程仓库的指定位置 git专栏收录该内容2 篇文章0 订阅订阅专栏2018.11.26添加内容: 对于自己的仓库,我们建议将远程仓库通过clone命令把整个仓库克隆到本地的某一路径下。这样的话我们从本地向远程仓库提交代码时,就可以直接把需要提交的文件拖到我们之前克隆下来的
代码规范之 lint-staged 在代码提交之前,进行代码规则检查能够确保进入git库的代码都是符合代码规则的。但是整个项目上运行lint速度会很慢,lint-staged能够让lint只检测暂存区的文件,所以速度很快。 安装与配置 安装husky和lint-staged: yarn add hu
方法:1、文件没有git操作时用“git checkout--文件”命令还原;2、文件提交到暂存区时用“git reset HEAD”命令回退当前版本还原;3、文件提交到仓库区时用“git reset HEAD^”命令回退上一个版本还原。 本文操作环境:Windows10系统、Git2.30.0版、
使用Git将本地文件提交到远程仓库 一 操作准备条件: git远程仓库已经建好了,本地文件已经存在了,现在要将本地代码推到git远程仓库保存。 解决办法如下: 1、(先进入项目文件夹)通过命令 git init 把这个目录变成git可以管理的仓库 git init 2、把文件添加到版本库中,使用命令
GitHub克隆代码到本地全教程 因为工作原因更换电脑,想要从GitHub上拉取代码的话需要重新配置ssh keys,时间过的久了怕忘记就把步骤给记录下来。 具体步骤: 1.安装git 这我就不说了 2.在TortoiseGit的安装文件中找到 puttygen.exe应用程序 ,默认应该都是 :C
github上传项目的时候报出git@github.com: Permission denied (publickey). fatal: Could not read from remote repo 前言 会不会有程序员小伙伴在刚开始使用github的时候上传项目的时候困难重重,但是又基于自己本身
查看历史 git log --pretty=onelinegit log (然后一直按enter键) 一个是切换根据历史里面的id切换git checkout ID git log 需要不断按enter键出来历史提交记录 git log --pretty=oneline 是直接出来历史记录
Git工作原理及常用命令 欧怼怼发布于&#160;2020-12-08 git介绍 git(读音/ɡɪt/)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。git是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。 git
git git提交项目的具体流程 git项目流程:以下主要有3个角色:负责人、成员A、成员B(若负责人也要修改代码,则负责人同时兼任2个角色:负责人、成员) 主要负责人:搭建项目架构且提交到git上1.github官网登录后,新建仓库,生成地址url,复制线上仓库.git结尾的地址url2.在一个空
git上传项目全部流程 一、下载git 进入网址:https://git-scm.com/downloads; 点击中的Download 2.16.0 for Windows; 在中选择蓝色字段点击,根据电脑64或32位选择适合的下载,点击即可进行下载,下载完成后傻瓜式安装,一直点击下一步即可完成安
Your local changes to the following files would be overwritten by checkout问题的解决 于 2018-07-17 11:38:27 发布 Git 的本地版本管理有三个部分 名称&#x9;说明工作区(Working Directory)&#x9;
Git配置SSH Keys步骤使用教程 1.若是首次安装使用git,先配置用户名称和邮箱(如果有就不需要配置) 打开Git Bash,输入 git config --global user.name &quot;姓名&quot;git config --global user.email &quot
基本配置完成,接下来就是上传你要上传的项目了。 1、初始化git 进入你要上传的项目的文件夹,在文件夹内鼠标右击,选择“Git Bash Here”打开git命令行,输入: $ git init 目的是初始化git,并且会创建个“.git”文件夹,里面有个“config”就是用来保存远程厂库路径地址
本篇内容主要讲解“gitee如何上传代码”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“gitee如何上传代码”吧! ...
这篇“从gitee上下的代码如何用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这...
这篇文章主要介绍“gitee如何下载仓库里的项目”,在日常操作中,相信很多人在gitee如何下载仓库里的项目问题上存在疑惑,小编查阅了各式资料,整理出简单好用的...
本篇内容主要讲解“怎么在Gitee上更新代码”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么在Gitee上更新代...