zoukankan      html  css  js  c++  java
  • git之时光机穿梭

    版本回退

    • HEAD指向的版本就是当前版本,使用命令git reset --hard commit_id可以在版本之间穿梭

    • 可以通过git log查看提交历史,来确认回退到哪个版本

    • 如果不小心关掉了git bash,可以通过git reflog查看命令历史,以便确认要回到未来的哪个版本

    工作区和暂存区

    工作区(Working Directory)

    • 电脑中可以看到的目录

    版本库(Repository)

    • 工作区中有一个隐藏的版本库--.git

    • 版本库中最重要的就是暂存区(stage)Git自动创建的第一个分支master,以及指向master的一个指针叫HEAD

    • 当通过git add添加文件时,实际上是把文件暂存到了stage

    • 通过git commit提交时,就是将暂存区的所有内容提交到当前分支

      • 因为创建Git版本库时,Git自动创建了第一个分支master,所以目前git commit就是往master分支上提交更改

    管理修改

    • git管理的是修改,而不是文件。即修改了某一行或某个单词。

    • 如果修改了文件内容,而没有进行git add,则修改并没有保存到暂存区,那就不会加入到commit

    撤销修改

    git checkout -- <file>

    • 丢弃工作区的更改

      • 情况1:修改了工作区,但未提交到暂存区

      • 情况2:提交到暂存区后又修改了工作区,但未再次提交到暂存区

    git reset HEAD <file>

    • 丢弃暂存区的提交

      • 此时工作区的修改还存在,如果想丢弃,则继续使用git checkout -- <file>

    删除和撤销删除

    • 当通过手动或命令rm <file>删除工作区文件后,如果真的想删除该文件,通过git rm <file> git commit -m "..."删除版本库中的文件,不可恢复

    • 而如果不小心误删,想恢复的话,通过命令git checkout <file>恢复

    • git checkout <file>实际上就是让工作区的内容与版本库中的保持一致

  • 相关阅读:
    单向链表
    字符串的碎片整理。。。
    刷夜有感
    C中的枚举类型及一些用法
    hdu 1001(无赖的一种方法)
    加法器和布尔运算符
    《C和指针》学习笔记(4)
    Java中创建对象的5种方式 -[转] http://www.codeceo.com/article/5-ways-java-create-object.html
    程序员转行为什么这么难--[转]
    Tomcat 性能优化之APR插件安装 -- [转]
  • 原文地址:https://www.cnblogs.com/ashen1999/p/12559910.html
Copyright © 2011-2022 走看看