zoukankan      html  css  js  c++  java
  • git 常用操作

    常用流程是:
    git status
    git add .
    git commit -m "xxx"
    git push origin ymtc@develop
     
    转到ymtc分支   git checkout ymtc@xxx
    合并分支  git merge ymtc@develop
    构建  build
    再add commit  push  发布预发
     
    同事有次开发在预发分支,合过来合过去代码全乱了
    用到回退 git reset
    git reset 有三种模式
     

    reset --hard:重置stage区和工作目录: reset --hard 会在重置 HEAD 和branch的同时,重置stage区和工作目录里的内容。当你在 reset 后面加了 --hard 参数时,你的stage区和工作目录里的内容会被完全重置为和HEAD的新位置相同的内容。换句话说,就是你的没有commit的修改会被全部擦掉。

    reset --soft:保留工作目录,并把重置 HEAD 所带来的新的差异放进暂存区 reset --soft 会在重置 HEAD 和 branch 时,保留工作目录和暂存区中的内容,并把重置 HEAD 所带来的新的差异放进暂存区。

    reset 不加参数(mixed):保留工作目录,并清空暂存区 reset 如果不加参数,那么默认使用 --mixed 参数。它的行为是:保留工作目录,并且清空暂存区。也就是说,工作目录的修改、暂存区的内容以及由 reset 所导致的新的文件差异,都会被放进工作目录。简而言之,就是「把所有差异都混合(mixed)放在工作目录中」。

    另:

    今天又遇到新问题了,reset hard就是强制回退到之前版本,在此基础上的修改,会比远程仓库的落后(behind),所以怎么都push不上去,搞了一两个小时

    最后一步push的时候用以下命令就可以了

    ***

    git push origin 分支 --force
    

     补充:

    git reset 和 git revert 的区别

    1. git revert是用一次新的commit来 回滚之前的commit,git reset是直接 删除指定的commit。
    2. 在回滚这一操作上看,效果差不多。但是在日后继续merge以前的老版本时有区别。因为git revert是用一次逆向的commit“中和”之前的提交,因此日后合并老的branch时,导致这部分改变不会再次出现,但是git reset是之间把某些commit在某个branch上删除,因而和老的branch再次merge时,这些被回滚的commit应该还会被引入。
    3. git reset 是把HEAD向后移动了一下,而git revert是HEAD继续前进,只是新的commit的内容和要revert的内容正好相反,能够抵消要被revert的内容。
  • 相关阅读:
    软件测试人员的要求
    冒烟测试和回归测试的区别
    [go]struct
    [go]socket编程
    [go]gorhill/cronexpr用go实现crontab
    [go]os/exec执行shell命令
    [go]time包
    [go]etcd使用
    [go]redis基本使用
    [go]go操作mysql
  • 原文地址:https://www.cnblogs.com/rong88/p/11753481.html
Copyright © 2011-2022 走看看