1.检查当前文件状态 --  git status  git diff  git diff --staged 

   git status :我们可以使用 git status 来查看文件所处的状态。当运行 git status 之后,出现类似下面输出:

$ git status
On branch master
nothing to commit, working directory clean

说明,现在的工作目录非常干净,换句话说,所有的已跟踪文件在上次提交之后都未被修改过。

   如果你想要知道具体修改了什么地方,可以使用 git diff 命令。

1. git diff :查看尚未暂存的文件更新了哪些部分。

2. git diff --staged :查看已暂存的文件更新了哪些部分。

2.跟踪新文件 --  git add

  当在工作目录新建一个文件,运行 git status ,会显示这个文件是untracked状态。这时候需要使用 git add  将这个文件加入暂存区,也就是告诉Git需要去跟踪这个文件。

git add 使用文件或者目录的路径作为参数;如果参数是目录的路径,那么将该目录下所有的文件加入暂存区,Git将会跟踪这个目录下面的所有文件。

3.暂存已修改文件 --  git add   --(可以将这个命令理解为:添加内容到下一次commit中)

  当修改了Git追踪的一个文件之后,运行 git status 会看到 Changes not staged for commit ,说明已跟踪的文件发生了变化但是还没有被加入到暂存区,这时候需要运行 git add 将该文件放入暂存区。

   git add 是一个多功能命令:

1.使用它跟踪新文件;

2.将已跟踪的文件加入到暂存区;

3.还能用于合并时将有冲突的文件标记为已解决的状态。

注意: git commit 只会讲暂存区的文件提交到Git仓库中,不在暂存区中的文件是不会被提交的。比如:当你运行 git add README 之后,将README文件加入了暂存区,这时候你又修改了README文件,但是没有运行 git add ,这时候如果直接提交,那么只会讲暂存区中的README版本的文件提交到Git仓库。你对README新做的修改不会被提交到Git仓库。

4.忽略文件 -- .gitignore文件

  一般我们总会有一些文件不想纳入Git进行管理,同时也不希望他们总出现在未跟踪文件列表。这时候只需要在.gitignore文件中指定这些你不想被Git进行管理的文件,这样一来当你在提交代码到远程仓库的时候也就不会将这些文件上传上去了。GitHub 有一个十分详细的针对数十种项目及语言的 .gitignore 文件列表,你可以在https://github.com/github/gitignore找到它.

5.提交更新 --  git commit 

  在暂存区准备完毕之后,就可以commit了。注意:在提交之前一定要确认还有什么没有修改过的活新建的文件还没有 git add 过,否则commit的时候不会记录这些还没暂存起来的变化,这些修改过的文件只会保留在本地磁盘(也就是工作区)。在每次提交之前,可以使用 git status 查看一下,文件是不是已经都暂存起来了。

1.  git commit 如果不指定-m参数,那么git会打开一个编辑器,让你输入提交信息。

2. git commit -m <info>  指定-m参数,可以在后面直接指定提交信息。(推荐使用)

3. git commit -a -m <info>有时候,在修改某一个已经被track的文件之后,可以直接使用 git commit -a -m "info" 跳过add步骤而将这个文件提交。

注意:这条命令会将已经被track的文件加入到暂存区,然后进行提交;对于没有被track的文件(例如新添加的文件),在修改之后是不能使用这条命令直接进行提交的。

  commit记录的是放在暂存区域的快照,每一次提交操作都是对项目做一次快照,以后可以回到这个状态,或者进行比较。

6.移除文件 --  git rm 

  执行以下命令:删除一个文件。

$ git rm <filename>
$ git commit -m <info>

  如果被删除的文件修改过,而且已经被放入了暂存区,那么需要加上 -f 参数,强制删除。这是一种安全特性,用于防止删除还没有被添加快照的数据,这种数据无法被Git恢复。

  如果你只是想从暂存区删除文件,但是工作区的文件保持不变(将文件保存在磁盘),也就是说将文件保存在磁盘但是不想让Git进行跟踪,使用如下命令即可:

$ git rm --cached <filename>

7.移动文件 --  git mv 

  可以使用 git mv 来讲文件重命名。命令格式如下:会将oldFile重新命名为newFile

$ git mv <oldFile> <newFile>

这条命令会:1.将文件改名;2.将改名之后的文件add进暂存区。等价于下面三条命令。

$ mv oldFile newFile
$ git rm oldFile
$ git add newFile

  

3.Git基础-查看当前文件状态、跟踪新文件、暂存文件、忽略文件、提交更新、移除文件、移动文件的更多相关文章

  1. git(工作区,暂存区,管理修改,撤销修改,删除文件)

    工作区和暂存区 984次阅读 Git和其他版本控制系统如SVN的一个不同之处就是有暂存区的概念. 先来看名词解释. 工作区(Working Directory) 就是你在电脑里能看到的目录,比如我的l ...

  2. Git基础知识之内部状态管理系统

    本文主要来介绍一下 Git 的内部状态管理系统.它利用基于节点和指针的数据结构来跟踪及管理编辑操作的时间线. 对本地项目而言,任一时刻,Git 处于三种状态中的一种:工作区状态.暂存区状态和提交区状态 ...

  3. 4.Git基础-查看提交历史

    1.查看提交历史 --  git log  使用 git log 可以查看到所有的提交(commit)历史. 1. $ git log 列出所有commit,最新的commit在最上面.会显示每个提交 ...

  4. git 填坑之 git 暂存区忽略文件

    今天修改公司项目文件的时候,发现被修改的文件的始终不显示已经被修改. 本来是想要把 KWh 改成 kWh,然后执行 git status 后,没有文件修改记录: 开始分析究竟是因为什么导致的这样诡异的 ...

  5. Git以及github的使用方法(三),git status查看工作区的状态,git diff查看具体修改内容

    我们已经成功地添加并提交了一个readme.txt文件,现在,是时候继续工作了,于是,我们继续修改readme.txt文件,改成如下内容: Git is a distributed version c ...

  6. Git 基础 - 查看提交历史

    查看提交历史 在提交了若干更新之后,又或者克隆了某个项目,想回顾下提交历史,可以使用 git log 命令查看. 接下来的例子会用我专门用于演示的 simplegit 项目,运行下面的命令获取该项目源 ...

  7. 一篇长文说 git 基础

    版本管理在产品级开发中是非常重要的一个部分,它涉及到团队协作,且影响到产品最终的发布.上线以及测试环节,当前最流行的版本控制系统是 git.git 内容非常多,本文尽量克制地来介绍 git 的基础内容 ...

  8. git命令--git checkout 之 撤销提交到暂存区的更改

    SYJ@WIN-95I6OG3AT1N /D/gitlab/ihr-kafka-produce (master) $ git status [由于工作区文件被修改了,所以显示为红色] On branc ...

  9. Git教程(3)git工作区与文件状态及简单示例

    基础 目录: working driectory  工作目录,就是我们的工作目录,其中包括未跟踪文件及暂存区和仓库目录. staging area   暂存区,不对应一个具体目录,其实只是git di ...

随机推荐

  1. SVN学习之windows下svn的安装

    svn是apache的一个开源项目,全称为subversion.是一个基于版本的项目管理软件,一般在多人开发的项目中使用,目前svn已经替代了原来的cvs.大多数情况下,svn服务安装在linux服务 ...

  2. 10.app后端选择什么开发语言

    在qq上,经常看到有创业团队的创始人一直都招不到技术人员,除了项目的因素外,很大的原因就是所需要掌握的开发语言偏门.通过阅读本文,详细了解选择开发语言的核心原则,使各位心里对开发语言的选择更加有数. ...

  3. Spring+SpringMVC+MyBatis+easyUI整合进阶篇(十五)阶段总结

    作者:13 GitHub:https://github.com/ZHENFENG13 版权声明:本文为原创文章,未经允许不得转载. 一 每个阶段在结尾时都会有一个阶段总结,在<SSM整合基础篇& ...

  4. Netty与网络编程

    Netty什么? Netty项目是一个提供异步事件驱动网络应用框架和快速开发可维护的高性能高扩展性服务端和客户端协议工具集的成果.换句话说,Netty是一个NIO客户端服务端框架,它使得快速而简单的开 ...

  5. json & pickle 序列化

    #!/usr/bin/python # -*- coding: utf-8 -*- # 序列化: 例如把字典写进文件 info = { 'name': 'alex', 'age': 22 } f = ...

  6. bzoj 3167 SAO

    树dp 定义f[i][j]为i在其已合并子树内排名为j的方案数 O(n2)进行子树合并 转移时枚举他在已合并子树中的排名j和新合并子树中的排名k+1 当他比他儿子大的时候$f[x][j+k]=f[x] ...

  7. 《The java.util.concurrent Synchronizer Framework》 JUC同步器框架(AQS框架)原文翻译

    一.论文简介 闲来无事,看看源码,发现了一篇JDK作者的论文<The java.util.concurrent Synchronizer Framework>主要描述了作者对Abstrac ...

  8. 阿里巴巴Java开发程序猿年薪40W是什么水平?

    对于年薪40万的程序员,不只是技术过硬,还有一个原因是他们所在的公司福利高,或者会直接持股.在BAT中就是一个很好的案例,例如阿里巴巴P7,P8级别的员工不仅是年薪30到80万不等,还有更多股票持有. ...

  9. Guess 任意猜

    age_of_oldboy = 56 count = 0 while count <3: guess_age = int(input("guess age:")) if gu ...

  10. Oracle执行计划学习笔记

    目录 一.获取执行计划的方法 (1) explain plan for (2) set autotrace on (3) statistics_level=all (4) dbms_xplan.dis ...