git 命令 git status add rm commit mv

1.查看 git 仓库文件改动状态

Git 仓库内文件改动有 4 种状态,除了 Unmodified 状态的文件因为并未改动默认没有状态不做显示之外,其他文件改动状态都可以通过 git status 来查看

查看 Git 记录的状态 常用命令,

查看git仓库状态

git status

拿到一个git仓库,进入仓库,第一执行这个命令查看

[[email protected] ~]# cd /data/git_test/
[[email protected]-node1 git_test]#
[[email protected]-node1 git_test]# git status
On branch master  // 在master分支上 默认在master分支上

Initial commit // 初始化commit

nothing to commit (create/copy files and use "git add" to track)
// 现在是空仓库 你可以创建,拷贝文件然后可以使用git add 命令

在工作区创建 a、b、c 三个文件。

[[email protected] git_test]# touch a b c
[[email protected]-node1 git_test]# ll
total 0
-rw-r--r-- 1 root root 0 Aug 24 22:36 a
-rw-r--r-- 1 root root 0 Aug 24 22:36 b
-rw-r--r-- 1 root root 0 Aug 24 22:36 c

看 Git 记录的状态,从下面结果可知,新增的 3 个文件在 Git 空间里都属于Untracked 文件,存放在工作区内

[[email protected]node1 git_test]# git status
On branch master

Initial commit

Untracked files:
  (use "git add <file>..." to include in what will be committed)

    a
    b
    c

nothing added to commit but untracked files present (use "git add" to track)

Git 仓库目录下的文件改动操作默认都发生在 Git 工作区内,Git 并不会主动管理。如果希望 Git 能够管理这些变动,你需要主动通知 Git。共有 3 种通知 Git 的命令(git add/rm/mv)

2. 将工作区文件改动添加到暂存区 git add

git add是第一种通知Git命令,这个命令用于告诉Git我们新增了文件改动,被git add命令操作过的文件(改动)便会处于 Git 暂存区

[[email protected] git_test]# git add a // 添加单文件改动到暂存区
[[email protected] git_test]# git status  // 查看此时的文件状态,a 文件已在暂存区中了
On branch master

Initial commit

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)

    new file:   a

Untracked files:
  (use "git add <file>..." to include in what will be committed)

    b
    c

git add 把一个文件从工作目录移动到暂存区,从Untracked 状态到Staged状态

暂存区是在.git目录下index文件,初始化仓库时候index文件不存在,当使用git add 把文件移动到暂存区这个index文件就生成了

[[email protected] git_test]# cd .git/
[[email protected]-node1 .git]# ll
total 16
drwxr-xr-x 2 root root   6 Aug 24 00:17 branches
-rw-r--r-- 1 root root  92 Aug 24 00:17 config
-rw-r--r-- 1 root root  73 Aug 24 00:17 description
-rw-r--r-- 1 root root  23 Aug 24 00:17 HEAD
drwxr-xr-x 2 root root 242 Aug 24 00:17 hooks
-rw-r--r-- 1 root root  96 Aug 24 22:49 index // index文件生成
drwxr-xr-x 2 root root  21 Aug 24 00:17 info
drwxr-xr-x 5 root root  40 Aug 24 22:49 objects
drwxr-xr-x 4 root root  31 Aug 24 00:17 refs

我们可以使用 git add . git add * 可以一次将多个文件改动添加到暂存区

把工作目录所有文件都提交到暂存区

[[email protected] git_test]# git add .

输出结果

// 查看此时的文件状态,3 个文件都已在暂存区中了

[[email protected]-node1 git_test]# git status
On branch master

Initial commit

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)

    new file:   a
    new file:   b
    new file:   c

3.将暂存区文件改动回退 git rm

Git rm 命令用于告诉 Git 我们想把之前用 git add 添加的文件改动从 Git 暂存区里拿出去,不需要 Git 记录了。拿出去有两种拿法,一种是从暂存区退回到工作区,另一种是直接丢弃文件改动。让我们试着将 c 退回到工作区,b 直接丢弃。

git rm 将文件从暂存区移回到工作目录,使状态Staged变成unstaged

git rm --cached

git rm -f

git rm --cached

//将 c 的改动从暂存区工作区

//将 c 的改动从暂存区工作区
[[email protected] git_test]# git rm --cached c
rm ‘c‘
//查看 c 是否已经移回工作区
[[email protected]node1 git_test]# git status
On branch master

Initial commit

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)

    new file:   a
    new file:   b

Untracked files:
  (use "git add <file>..." to include in what will be committed)

    c

git rm -f

//将 b 文件直接从 git 空间里删除,也是就是从暂存区和工作区都删除。

//将 b 文件直接从 git 空间里删除,也是就是从暂存区和工作区都删除。
[[email protected] git_test]# git rm -f b
rm ‘b‘

//查看状态
[[email protected]node1 git_test]# git status
On branch master

Initial commit

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)

    new file:   a

Untracked files:
  (use "git add <file>..." to include in what will be committed)

    c

//当前目录中已经没有文件 b
[[email protected]node1 git_test]# ll
total 0
-rw-r--r-- 1 root root 0 Aug 24 22:36 a
-rw-r--r-- 1 root root 0 Aug 24 22:36 c

4.提交 git commit

把文件从暂存区提交到本地仓库

当我们在仓库工作区下完成了文件增删改操作之后,并且使用 git add 将文件改动记录在暂存区之后,便可以开始将其提交到 Git 本地仓库。

将暂存区内容提交 git commit –m “”   

后面的“”是描述,描述这次提交内容是什么

[[email protected]node1 git_test]# git status
On branch master

Initial commit

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)

    new file:   a

//将暂存区内的文件 a.txt 提交到本地仓库

//将暂存区内的文件 a.txt 提交到本地仓库
[email protected] git_test]# git commit -m "commit a"
[master (root-commit) 73d7230] commit a
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 a

// 查看工作区状态,现在工作区是干净的工作区,可以理解为工作目录、
//缓存区、本地仓库三个区域都存储内存是一样的,git三个区域缓存区、工作目录、本地仓库都保存着a文件,a文件在三个区域是一致的
[[email protected]node1 git_test]# git status
On branch master
nothing to commit, working tree clean

// a文件被提交到本地仓库了,a文件才真正被git管理

提交到本地仓库的文件在三个区域 工作目录,暂存区,本地仓库  分别存储一份,副本

5.将暂存区文件移动位置/重命名 git mv

Git mv 命令用于告诉 Git 我们想把之前用 git add 添加的文件直接在暂存区里重新命名或移动到新位置。

git mv 对缓存区和工作目录的文件命名和移动到新位置

//将 a 文件改名为 a.txt

//将 a 文件改名为 a.txt
[[email protected] git_test]# git mv a a.txt
[[email protected]-node1 git_test]# git status
On branch master
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

    renamed:    a -> a.txt

// 直接告诉状态renamed

[[email protected]-node1 git_test]# ll
total 0
-rw-r--r-- 1 root root 0 Aug 24 22:36 a.txt

再提交

[[email protected] git_test]# git commit -m "rename a to a.txt"
[master cc8bd80] rename a to a.txt
 1 file changed, 0 insertions(+), 0 deletions(-)
 rename a => a.txt (100%)

[[email protected]-node1 git_test]# git status
On branch master
nothing to commit, working tree clean

原文地址:https://www.cnblogs.com/mingerlcm/p/11406563.html

时间: 2024-11-07 15:50:30

git 命令 git status add rm commit mv的相关文章

痞子衡嵌入式:第一本Git命令教程(3)- 编辑(status/add/rm/mv)

今天是Git系列课程第三课,前两课我们都是在做Git仓库准备工作,今天痞子衡要讲的是Git本地提交前的准备工作. 本地有了仓库,我们便可以在仓库所在目录下做文件增删改操作,这些操作默认都发生在Git工作区内,Git并不会主动管理.如果希望Git能够管理这些变动,你需要主动通知Git.共有3种通知Git的命令,痞子衡为大家一一讲解. 1.查看Git空间文件改动状态git status 前面讲过Git空间内文件改动有4种状态,除了Unmodified状态的文件之外,其他文件改动状态都可以通过git

git命令——git rm、git mv

git rm git rm命令官方解释 删除的本质 在git中删除一个文件,本质上是从tracked files中移除对这些文件的跟踪.更具体地说,就是将这些文件从staging area移除.然后commit. 作用 git rm的作用就是将文件从暂存区删除 git rm的作用就是将文件从工作目录 和 暂存区 删除. git rm并不能仅仅删除工作目录中的文件,而暂存区保持不变.目前git也没有提供任何参数支持这一功能.要想实现这一目标,只能使用Linux自带的/bin/rm命令 使用场景 彻

git 命令 git stash 和 git stash pop

今天好心累 居然把我写的东西都没了 本地和远程的版本差别太大 于是我想更新一下 更新的时候报错了 于是我按照老师的来 之前忘记了他怎么操作的 只记得有 git stash -> git merge -> git pull 于是我就按照这个过程开始敲了...于是就更新到原始版本了 我于是我就心死了... 后来我问过老师 然后去百度查了查 只需要一个命令就可以了  git stash pop  好厉害!! 如果有很多git stash 则在pop后面加上编码就可以了~~~~~~ git stash

git命令——git log

功能 在提交了若干更新,又或者克隆了某个项目之后,你也许想回顾下提交历史. 完成这个任务最简单而又有效的方法是 使用git log 命令. 参数 不带任何参数 $ git log commit ca82a6dff817ec66f44342007202690a93763949 Author: Scott Chacon <[email protected]> Date: Mon Mar 17 21:52:11 2008 -0700 changed the version number commit

常用的20个Git命令——每个都举例说明

很多人关于git命令没有形成比较统一.可以自己借鉴的模板,所以在此文中,我将讨论在使用Git时经常使用的前20个Git命令.并带有相关示例,希望能够帮助你们. 以下是涉及的Git命令: Git命令 git config 用法: git config –global user.name “[name]” 用法: git config –global user.email “[email address]” 此命令分别设置要与提交一起使用的作者姓名和电子邮件地址. git init 用法: git

git学习——git命令之创建版本库

原文来至 一.创建版本库 版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改.删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以"还原". 所以,创建一个版本库非常简单,首先,选择一个合适的地方,创建一个空目录: $ mkdir learngit $ cd learngit $ pwd /Users/michael/learngit pwd命令用于显示当前目录.在我的Mac上,这个仓库

关于常用的git命令列表

我博客园中所写的git内容几乎都是看的蒋鑫老师的<git权威指南>这本书实在太好了. 常用的Git命令. git add git add interactive git applay git am git annotate git archive git bisect git blame git branch git cat-file git checkout git cherry-pick git citool git clean git clone git commit git confi

git命令的使用总结

1.git官网,下载安装git客户端 2.配置全局的name和email,生成key git config --global user.name  XXX git config --global user.email  [email protected] ssh-keygen -t rsa -C "[email protected]" 连续按三次回车,生成key,用户目录下会多一个.ssh文件夹,文件目录如下 3.添加公钥到远程仓库 打开id_rsa.pub,复制全部内容,然后选择ne

git命令日常工作总结

常用git命令git commit -m "fix:问题描述 # 出问题的CM-jiro号" 如 提交记录描述模板:fix(admin/统计/企业支付): "导出所有用户信息" 点击无响应 #CM-31334 git branch -r 查看远程所有分支git branch -a 查看本地和远程所有分支git branch -a 查看远程分支(当前分支.同级分支.上一级分支.下一级分支,不能查看其它分支的子分支)git branch -a | grep CM-305