git修改代码查看文件差异-移除代码-重命名文件

本文git版本1.9.6

git代码提交层次图

git修改代码查看文件差异-移除代码-重命名文件

一、修改本地代码查看差异

二、移除代码

三、重命名代码

1.1、当我们修改本地code的时候,使用命令可以看到文件的状态的处于修改状态;然后我们可以将code add 然后进行commit;

我们可以看到code修改什么地方,修改了什么内容;

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

git修改代码查看文件差异-移除代码-重命名文件

git修改代码查看文件差异-移除代码-重命名文件

1.2、将此添加到staging area区域,再次查看文件状态

$ git add hello.rb
$ git status -s
$ git diff hello.rb

git修改代码查看文件差异-移除代码-重命名文件

可以看到文件状态表示staging area和repository区域之间发生了改变;

可以看出 diff 选项 可以用于查看working directory 和 staging area 区域间的文件变化;

1.3、使用 git diff HEAD 可以看到 working directory 和 repository 区域间 的文件变化

$ git diff HEAD hello.rb

git修改代码查看文件差异-移除代码-重命名文件

1.4、使用git diff –staged 可以看到 staging area 和 repository 区域间的文件变化

$ git diff --staged hello.rb

git修改代码查看文件差异-移除代码-重命名文件

$ git diff --staged --stat hello.rb     # 输出简要信息

git修改代码查看文件差异-移除代码-重命名文件

这是文件改变输出变化的命令

2、移除代码

2.1、将hello.rb的文件删除,(此步相当于 add 的逆操作)查看文件状态;将结果 commit 到 repository;查看文件状态;

$ git rm hello.rb
$ ls
$ git status -s

git修改代码查看文件差异-移除代码-重命名文件

可以看出执行 rm 的时候就已经将本地文件删除掉了;

执行 status 可以看到文件状态标识为 D 表示处理已删除状态;

$ git commit -m "first del" hello.rb

git修改代码查看文件差异-移除代码-重命名文件

2.2、如果我们不想删除working directory 区域的文件,只想删除 staging area 区域的文件,可以执行 git rm –cached 命令;

$ git rm --cached hello.rb

git修改代码查看文件差异-移除代码-重命名文件

在执行 git status -s 后,D 和 ?? 是什么意思呢? D 表示 staging area 和 repository 区域的差别,表示 hello.rb 处理删除状态, 所以在working directory 区域的 hello.rb就处于 Untracked 状态;

2.3、如果想恢复staging area 区域的hello.rb,可以从repository 拉取 或 从 working directory 提交上去 (在本地没有改变的时候,如果改变,那提交的是新文件,也不会恢复到之前的文件);

$ git reset hello.rb    # 从 repository 拉取

git修改代码查看文件差异-移除代码-重命名文件

3、重命名代码

3.1、将本地文件 README.txt 重命名为 README.md ;查看文件状态,然后提交到 repository ;

$ git mv README.txt README.md
$ git commit -m "first rename filename"

git修改代码查看文件差异-移除代码-重命名文件

tips: 上面 执行 commit 的时候,其实是执行了两个步骤,把 README.txt 删除提交,把 README.md 提交; 看下图就明白了;

git修改代码查看文件差异-移除代码-重命名文件

其实在 git 中,文件的名字和内容可以分开理解(就像 Python 的 变量和值);在git中,如果两个文件的内容一样,他就认为是一个重命名;

git修改代码查看文件差异-移除代码-重命名文件

© 版权声明

相关文章