• 【Git】git使用


    (多看git中的各种帮助-h/--help,可能有你想要的命令)

    1、分支的创建和切换

      创建 >>>> git branch branchName

      切换分支 >>>> git checkout branchName

      创建并切换到新分支 >>>> git checkout -b branchName

      删除分支 >>>> git branch -d branchName (不能删除HEAD所在的branch,需先切换到别的branch后再删除)

      合并分支 >>>> git merge <branchName>(存在参数branchName,标识将branchName分支合并到当前分支;如果不存在参数,表示将最新节点?commit?合并到当前分支,不知道怎么表达)

      分支重命名 >>>> git  branch -m branchName newName

     

    2、删除远程/本地仓库中无用commit(回滚提交,谨慎使用)

      现在的remote中的log。(本地仓库已commit未push的处理是一样的)

    image

      此时要舍弃掉”add problem”之后的3次提交。

      i. git reset --hard  eaef12481e848225ba3aca0b0b2e55bcd06c8725

    (可以详细了解--hard的作用,针对不同的情况,可能用--mixed/--soft更好

        --mixed              reset HEAD and index
        --soft                reset only HEAD
        --hard                reset HEAD, index and working tree

    image

      ii. git push --force  (只要是--force/-f都要注意使用,小心没后悔药)

    image

    image

     

    3、利用rebase合并commit。

    作用,主要是想保证remote的commit log是线性的,且每次commit log/version都是有"每次"的含义,而不是多次连续的commit其实只需要一次commit log.

    (见: 【Git】git使用 - rebase的使用


    4、git merge --squash <branch> 

    --squash              create a single commit instead of doing a merge

    作用,我们经常是在newBranch做一个功能然后merge到master,但在newBranch中也会有多次的commit。但是最后merge到master提交到远程仓库却只希望有1次commit log。

    这样merge到master后,在master可以指定一次新的commit从而舍弃newBranch中的多次commit。

  • 相关阅读:
    第六章学习小结
    malloc iOS
    iOS事件传递机制
    对 runloop 的理解
    深恶痛绝重写setter和getter
    数据库常见问题总结
    iOS多应用自动打包
    一段文字中包含多种语言时行间距问题
    一个成熟应用的排版方案
    Flask纪要
  • 原文地址:https://www.cnblogs.com/VergiLyn/p/6701859.html
Copyright © 2020-2023  润新知