• git 本地仓库操作


    一、git对象模型和存储

     

    二、常用命令

    1)git checkout branch 切换分支

    假设现在有两个分支,master和dev分支

    i dev分支上没有readme.txt

      在master分支上我修改了readme.txt但是没有commit到本地仓库,那么在dev分支上仍然会看到readme.txt

      在master分支上我修改了readme.txt并且commit到本地仓库,那么dev分支上没有readme.txt

    ii dev分支上存在readme.txt

      在master分支上我修改了readme.txt但是没有commit到本地仓库,切换失败,提示commit后再切换分支

      在master分支上我修改了readme.txt并且commit到本地仓库,切换成功,两个readme.txt互不影响

    2)git checkout master~3 将HEAD指针回退,并取出其中的数据添加到工作区和缓存区

    因为是添加而非覆盖,所以当你在ed489上做的操作,没有commit时,当切换到b325,仍然可以看到那些未commit的文件。

    如果现在在b325上做了修改,并且commit了,则commit的内容会丢失,因为切换到b325时,并不在任何一个分支上,此时显示的是:

     

    如果想要这次更改,可以在commit前,git checkout -b branchName,将这个位置新建为一个分支,然后commit,此时的修改内容可以在新的分支上查找到。

    3) git checkout master~3 filename 将filename这个文件切换到之前的版本,注意切换后仍然在master分支上,是用b325中的filename文件覆盖了ed489的filename,此时commit会生成新的校验和,也就是新的commit

    4) git revert b325c 将b325c的commit复制到当前commit末尾,生成新的commit,是较安全的版本回退

     5)git cherry-pick commitID 将commitID重演,并在当前commit链表末尾添加新的commit,同时将此时文件添加到stage和working directory

    6) git diff

  • 相关阅读:
    Android中的sp与wp
    MTK
    linux kernel文件系统启动部分
    Java项目构建基础之统一结果
    线程和线程池的学习
    SpringBoot 中MyBatis的配置
    MyBatis中使用Map传参——返回值也是Map
    OAuth2的学习
    Java 跨域问题
    Spring Cloud 中的 eureka.instance.appname和spring.application.name 意思
  • 原文地址:https://www.cnblogs.com/YangqinCao/p/6798435.html
Copyright © 2020-2023  润新知