Git本地操作2
移除文件
- 从Git仓库和本地目录中删除文件(git rm)

命令执行完成后git仓库中yy.txt文件被删除,同时本地目录中的也被删除,然后在执行git status命令查看状态:

下次执行提交命令时该文件就不在纳入版本控制了
注意:如果要被删除的文件已经缓存但为为未提交时,如果此时执行git rm会失败:

此时可以加 -f 参数强行删除,这也就意味着本次未提交缓存丢失,Git无法在恢复这次未提交缓存:

如果未执行git rm命令,直接从目录中删除文件,那么Git仓库中此文件任然存在:

此时在执行git rm命令从git仓库中移除:

- 从Git仓库中删除,但本地目录中依然保留文件
 例:从仓库中删除Test.txt,但是本地目录中保留
 ![gitrmcached.png]() 
 此时Test.txt由之前的已跟踪变成未跟踪文件
文件重命名
如果想要重命名Git仓库中某个文件,需要进行如下操作:
A)将原文件另存为
B)git rm 原文件
C)git add 另存为的文件
Git提供了git mv SourceFile DestFile这条命令,一次性完成上述三条指令,例:

查看提交历史
《pro git》中给了一个github仓库的url:git://github.com/schacon/simplegit-progit.git,我以这个仓   库为例学习如何查看Git仓库的提交历史,首先先将项目克隆下来,然后使用git log命令查看提交历史:

git log命令会列出每次提交的校验和,作者以及电子邮件地址,提交时间,提交说明
加上-p参数,则可以查看每次提交时的变化,-n参数则可以查看最近n次的提交记录:
例如:查看最近一次的提交记录以及提交时的变化差异

现在来看一下差异输出结果:
一般+++表示目标文件,---表示源文件,+表示该行内容只出现在目标文件中,-表示该行内容只出现原文件中,既无"+"也无"-"的行
是表示原文件和目标文件中都存在,每个差异小结以@@开头,以@@结尾
--- a/Rakefile表示上次提交的文件(源文件) ,+++ b/Rakefile本次提交的文件(目标文件),两个文件有差异
@@ -5,7 +5,7 @@ 则表示原文件中从第5行开始向下的7行与目标文件中的第五行开始向下7行有差异,并且还列出
了局部差异:
require 'rake/gempackagetask'
spec = Gem::Specification.new do |s|
s.platform  =   Gem::Platform::RUBY
s.name      =   "simplegit"
-    s.version   =   "0.1.0"
+    s.version   =   "0.1.1"
s.author    =   "Scott Chacon"
s.email     =   "schacon@gmail.com"
s.summary   =   "A simple gem for using Git in Ruby code."
可以看出原文件中为s.version   =   "0.1.0",本次提交后变为s.version   =   "0.1.1"
git log命令的更多详细参数,可以参考《pro git》https://gitee.com/progit/2-Git-基础.html#2.3-查看提交历史
撤销操作
- 
取消被暂存的文件 git reset 文件名称 例:修改一个文件,然后暂存,然后在取消对该文件的暂存 
 ![gitrest.png]() 
- 
撤销对文件的修改 git checkout -- 文件名称 我们先修改工作目录中的某个文件,然后将其添加到暂存区,然后执行git checkout命令: 
 ![gitcheckout.png]() 执行撤销后本地文件中的内容被上次提交过的文件快照覆盖,同时该文件暂存区中的内容也和快照一致 
 
                    
                     
                    
                 
                    
                



 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号