zoukankan      html  css  js  c++  java
  • git 基本操作使用

    今天在开发过程中遇到一个问题。
    我在dev分支开发这。但是还没开发完新的功能。又有人要求我去改bug。我需要切换到bug分支。但是本地的开发到一半。也不能提交怎么半?

    这时候你需要 git stash

    git stash

    注意

    git stash 在各个分支下是共用的

    先来实际模拟下

    ## 查看当前状态。我新增了一个txt文件
    Mloong@DESKTOP-1LO98I2 MINGW64 /e/.css/testss (dev)
    $ git st
    On branch dev
    Your branch is ahead of 'origin/dev' by 2 commits.
      (use "git push" to publish your local commits)
    
    Changes to be committed:
      (use "git reset HEAD <file>..." to unstage)
    
            new file:   "344275240345245275.txt"
    
    ## 此时我需要去修改bug。我就stash下
    Mloong@DESKTOP-1LO98I2 MINGW64 /e/.css/testss (dev)
    $ git stash
    Saved working directory and index state WIP on dev: 274a87a Merge branch 'bug' into dev
    ## 查看当前分支状态 clean,此时就切换到bug分支该bug。
    Mloong@DESKTOP-1LO98I2 MINGW64 /e/.css/testss (dev)
    $ git st
    On branch dev
    Your branch is ahead of 'origin/dev' by 2 commits.
      (use "git push" to publish your local commits)
    
    nothing to commit, working tree clean
    ## 改完bug回来后。 使用 git stash pop 将之前写的恢复。继续开发新功能
    Mloong@DESKTOP-1LO98I2 MINGW64 /e/.css/testss (dev)
    $ git stash pop
    On branch dev
    Your branch is ahead of 'origin/dev' by 2 commits.
      (use "git push" to publish your local commits)
    
    Changes to be committed:
      (use "git reset HEAD <file>..." to unstage)
    
            new file:   "344275240345245275.txt"
    
    Dropped refs/stash@{0} (0987e1d06acecddd4f82138a6f2e3c8a0512c409)
    
    Mloong@DESKTOP-1LO98I2 MINGW64 /e/.css/testss (dev)
    $ git st
    On branch dev
    Your branch is ahead of 'origin/dev' by 2 commits.
      (use "git push" to publish your local commits)
    
    Changes to be committed:
      (use "git reset HEAD <file>..." to unstage)
    
            new file:   "344275240345245275.txt"
    
    
    
    

    常用git stash命令:

    (1)git stash save "save message" : 执行存储时,添加备注,方便查找,只有git stash 也要可以的,但查找时不方便识别。

    (2)git stash list :查看stash了哪些存储

    (3)git stash show :显示做了哪些改动,默认show第一个存储,如果要显示其他存贮,后面加stash@{$num},比如第二个 git stash show stash@{1}

    (4)git stash show -p : 显示第一个存储的改动,如果想显示其他存存储,命令:git stash show stash@{$num} -p ,比如第二个:git stash show stash@{1} -p

    (5)git stash apply :应用某个存储,但不会把存储从存储列表中删除,默认使用第一个存储,即stash@{0},如果要使用其他个,git stash apply stash@{$num} , 比如第二个:git stash apply stash@{1}

    (6)git stash pop :命令恢复之前缓存的工作目录,将缓存堆栈中的对应stash删除,并将对应修改应用到当前的工作目录下,默认为第一个stash,即stash@{0},如果要应用并删除其他stash,命令:git stash pop stash@{$num} ,比如应用并删除第二个:git stash pop stash@{1}

    (7)git stash drop stash@{(num} :丢弃stash@{)num}存储,从列表中删除这个存储

    (8)git stash clear :删除所有缓存的stash

    git cherry-pick

    如果dev分支也存在bug,用cherry-pick

    此时可以这样

    Mloong@DESKTOP-1LO98I2 MINGW64 /e/.css/testss (dev)
    $ git cherry-pick af1666d
    [dev 51ed07e] fix bug 001
     Date: Fri Feb 14 13:17:02 2020 +0800
     1 file changed, 1 insertion(+), 1 deletion(-)
    
    

    git reset

    回退命令:
    
    
    $ git reset --hard HEAD^         回退到上个版本
    $ git reset --hard HEAD~3        回退到前3次提交之前,以此类推,回退到n次提交之前
    $ git reset --hard commit_id     退到/进到 指定commit的sha码
    
    
    强推到远程:
    
     git push origin HEAD --force
    
    

    git flow

    下面这张图比较好的诠释了git flow

  • 相关阅读:
    Mysql子查询、关联查询
    Mysql 注意细节
    IE和FF区别关于css和js
    php 使用curl模拟登录人人(校内)网
    解析php mysql 事务处理回滚操作
    《Linux内核设计的艺术》学习笔记(二)INT 0x13中断
    《Linux内核设计的艺术》学习笔记(一)从开机加电到加载三个汇编源码
    CSS笔记(一)CSS规则
    HTML笔记(七)head相关元素<base> & <meta>
    HTML笔记(六)文档类型
  • 原文地址:https://www.cnblogs.com/zhenghengbin/p/12305421.html
Copyright © 2011-2022 走看看