windows下git操作(二)

来源:互联网 发布:刀具路径模拟软件 编辑:程序博客网 时间:2024/06/06 12:41
一、git diff

1、git diff命令,查看工作区暂存区的区别

例子:在一个文件夹下创建一个git仓库,新建一个hello文件并提交到暂存区,执行git diff命令,发现并无任何输出。再修改工作区的hello的内容保存并退出,执行git diff命令,发现系统给出提示。

$ git touch hello$ git add hello$ git diff
修改文件内容,保存退出

$ vim hello
执行git diff

$ git diffdiff --git a/hello b/helloindex e69de29..ce01362 100644--- a/hello+++ b/hello@@ -0,0 +1 @@+hellowarning: LF will be replaced by CRLF in hello.The file will have its original line endings in your working directory.
结果输出了暂存区和工作区的区别(是被追踪文件的区别,即被git add的文件的区别


2、git diff --cached或者git diff --staged,查看暂存区和上次提交到版本库的区别

接着上面的执行git diff--cached命令,发现系统给出暂存区和版本库的不同之处提示,接着执行git commit -m 'create hello file'(create hello file为提交的描述,可由自己填写)命令,将暂存区的内容提交到版本库中,再执行git diff --cached,发现控制台并无输出,因为最新的一次提交与暂存区的内容完全一致

$ git diff --stageddiff --git a/hello b/hellonew file mode 100644index 0000000..ce01362--- /dev/null+++ b/hello@@ -0,0 +1 @@+hello$ git commit -m 'create hello file'$ git diff --cached

3、git diff HEAD命令比较工作区版本库的区别
此时执行git diff HEAD控制台不会输出任何东西,因为工作区的内容和版本库的一样。我向hello文件写入“word”,再执行git diff HEAD,此时控制台给出提示。

修改hello文件,再其内容后加上" world",保存并退出

$ git diff HEAD$ vi hello
执行git diff HEAD命令

$ git diff HEADdiff --git a/hello b/helloindex ce01362..3b18e51 100644--- a/hello+++ b/hello@@ -1 +1 @@-hello+hello worldwarning: LF will be replaced by CRLF in hello.The file will have its original line endings in your working directory.

二、git commit

用于将暂存区中的内容写入到git仓库中


三、git reset HEAD

取消已提交的缓存内容

接着上面的,执行git status -s(这与git status命令是一样的,只是这个的输出更加的简介)命令

$ git status -s M hello
控制台输出的是" M hello",注意M(修改的意思)之前还有一个空格,前一个空格的字母是表示暂存区版本库的不同,后一个空格的字母表示为工作区暂存区之间的不同,当为空时说明两者没有什么不同。

$ git add hello$ git status -sM  hello
此时M的位置变为第一个了,说明工作区暂存区没有区别,现在执行git reset HEAD -- head

$ git reset HEAD -- helloUnstaged changes after reset:M       hello
$ git status -s M hello

现在撤销了缓存M又回到了第二个位置


四、git rm

将条目从缓存区中删除,这与 git reset HEAD 将条目取消缓存是有区别的。 "取消缓存"的意思就是将缓存区恢复为我们做出修改之前的样子。

git rm -f file:将file文件从工作区和暂存区中删除

$ git rm -f filename

git rm  --cached file: 将文件从暂存区删除但不会将工作区的文件删除


五、git mv

  相当于这三条指令,将文件从缓存中删除,重命名该文件,将重命名后的文件提交到缓存区中

$ git rm --cached file$ git mv file f$ git add f











0 0