zoukankan      html  css  js  c++  java
  • Git本地操作2

    移除文件

    • 从Git仓库和本地目录中删除文件(git rm)

    gitrm.png
    命令执行完成后git仓库中yy.txt文件被删除,同时本地目录中的也被删除,然后在执行git status命令查看状态:
    rmwaitcommit.png
    下次执行提交命令时该文件就不在纳入版本控制了
    注意:如果要被删除的文件已经缓存但为为未提交时,如果此时执行git rm会失败:
    删除已暂存未提交文件.png
    此时可以加 -f 参数强行删除,这也就意味着本次未提交缓存丢失,Git无法在恢复这次未提交缓存:
    强制删除已缓存未提交的文件.png
    如果未执行git rm命令,直接从目录中删除文件,那么Git仓库中此文件任然存在:
    直接从工作目录删除.png
    此时在执行git rm命令从git仓库中移除:
    直接删除后rm.png

    • 从Git仓库中删除,但本地目录中依然保留文件
      例:从仓库中删除Test.txt,但是本地目录中保留
      gitrmcached.png
      此时Test.txt由之前的已跟踪变成未跟踪文件

    文件重命名

    如果想要重命名Git仓库中某个文件,需要进行如下操作:
    A)将原文件另存为
    B)git rm 原文件
    C)git add 另存为的文件
    Git提供了git mv SourceFile DestFile这条命令,一次性完成上述三条指令,例:
    gitmov.png

    查看提交历史

    《pro git》中给了一个github仓库的url:git://github.com/schacon/simplegit-progit.git,我以这个仓 库为例学习如何查看Git仓库的提交历史,首先先将项目克隆下来,然后使用git log命令查看提交历史:
    gitlog.png
    git log命令会列出每次提交的校验和,作者以及电子邮件地址,提交时间,提交说明

    加上-p参数,则可以查看每次提交时的变化,-n参数则可以查看最近n次的提交记录:
    例如:查看最近一次的提交记录以及提交时的变化差异
    gitlogp1.png

    现在来看一下差异输出结果:
    一般+++表示目标文件,---表示源文件,+表示该行内容只出现在目标文件中,-表示该行内容只出现原文件中,既无"+"也无"-"的行
    是表示原文件和目标文件中都存在,每个差异小结以@@开头,以@@结尾

    --- 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

      执行撤销后本地文件中的内容被上次提交过的文件快照覆盖,同时该文件暂存区中的内容也和快照一致

  • 相关阅读:
    git功能速查
    iPad actionsjeet
    iOS开发中集成Reveal
    【转】ios内联函数 inline
    【转】数据存储——APP 缓存数据线程安全问题探讨
    iOS 改变导航栏高度
    ios 闪屏页的设置
    AFNetworking content type not support
    iOS 获取本地文件的各种坑
    iOS UICollectionView 长按移动cell
  • 原文地址:https://www.cnblogs.com/UnknowCodeMaker/p/11194157.html
Copyright © 2011-2022 走看看