• git基本技巧


    引用:

    http://www-cs-students.stanford.edu/~blynn/gitmagic/intl/zh_cn/index.html


     保存状态



    $ git init #初始化git,在git命令行下通过ls -a可以看到.git文件 $ git add . #把所有的文件添加到git暂存区里
    $ git reset --hard #恢复之前的版本

     添加、删除、重命名


    $git add readme.txt  #添加
    $git rm file #删除文件
    $git mv file1 file2 #移动文件

     撤销/重做


      $git log -n  #查看最近提交信息
    完整的提交信息
    commit 766f9881690d240ba334153047649b8b8f11c664
    Author: Bob <bob@example.com>
    Date:   Tue Mar 14 01:59:26 2000 -0800
    
       Replace printf() with write().
    
    $ git reset --hard 766f    #来恢复到一个指定的提交状态,其中766f....是hash值,不用全输入。
    $git checkout 82f5         #跳转到一个指定的状态
    $ git checkout master      #回到主分支
    • git reset --hard: 加载一个旧记录并删除所有比之新的记录。
    • git checkout: 加载一个旧记录,但如果你在这个记录上玩,游戏状态将偏离第 一轮的较新状态。你现在打的所有游戏记录会在你刚进入的、代表另一个真实的分支里。
    $ git checkout master~5      #回到倒数第五个保存状态
    这些操作都不会提交新的记录,通过git log是无法查看到的。

     撤销


     $ git revert 1b6d   #讲撤销给定哈希值的提交。本撤销被记录为一个新的提交,你可以通过运行 git log 来确认这一点。

     下载文件


    $ git clone git://server/path/to/files
    

    到最新


      $ git pull

     我们已经做了什么?


     找出自从上次提交之后你已经做了什么改变:
    $ git diff
    

    或者自昨天的改变:

    $ git diff "@{yesterday}"
    

    或者一个特定版本与倒数第二个变更之间:

    $ git diff 1b6d "master~2"
    

    输出结果都是补丁格式,可以用 git apply 来把补丁打上。也可以试一下:

    $ git whatchanged --since="2 weeks ago"
    练习

    比方A,B,C,D是四个连续的提交,其中B与A一样,除了一些文件删除了。我们想把这 些删除的文件加回D。我们如何做到这个呢?

    至少有三个解决方案。假设我们在D:

    1. A与B的差别是那些删除的文件。我们可以创建一个补丁代表这些差别,然后吧补丁 打上:

      $ git diff B A | git apply
      
    2. 既然这些文件存在A,我们可以把它们拿出来:

      $ git checkout A foo.c bar.h
      
    3. 我们可以把从A到B的变化视为可撤销的变更:

      $ git revert B
  • 相关阅读:
    Java实现第十届蓝桥杯旋转
    Java实现第十届蓝桥杯旋转
    Java实现第十届蓝桥杯最大降雨量
    Java实现第十届蓝桥杯最大降雨量
    Java实现第十届蓝桥杯最大降雨量
    Java实现第十届蓝桥杯最大降雨量
    Java实现第十届蓝桥杯最大降雨量
    Java实现第十届蓝桥杯质数
    【JSP EL】EL表达式获取当前时间(两种方式)
    23种设计模式总结
  • 原文地址:https://www.cnblogs.com/slogeor/p/3754205.html
Copyright © 2020-2023  润新知