zoukankan      html  css  js  c++  java
  • Git命令

           

    1.拉取远程分支并创建本地分支:   

                    git clone -b staging  http://1*ce.git   local_dir                       //  -b:  指定远程分支staging

                   方法一:git  checkout  -b  本地分支x   origin/远程分支名x      // 本地新建并自动切换分支x。本地分支会和远程分支建立映射关系。

                   方式二:git fetch origin 远程分支名x:本地分支名x                  //本地新建分支x但不自动切换,需手动checkout。本地分支不会和远程分支建立映射关系。

    2. 关联: 目的是在执行git pull/push时就用指定对应的远程分支

            git   branch --set-upstream-to=origin/remote local

            git remote add origin gy(为空时默认master) git@.....git

     

    3. 常用命令

    git branch –a本地和远程

    git branch –r 远程

    git branch 本地

    git branch –D local删除

    git commit --amend 修改msg

    git checkout –b dev origin/remote 新建分支并切换

    git branch dev  新建分支不切换

    git checkout dev分支切换

    git stash (pop)

    git push origin local:remote    

    删除远程仓库:$ git push origin --delete remoteDev

     

    git pull origin dev(远程分支名)   [git pull --rebase]

    -------------合并代码beyond compare-----------------

    -- git reset --hard commit_id 撤销某次提交 ;后git push –f   //远程分支退到指定commit 注:回退风险,防止回退别人的代码

    -- git revert –n cmid             撤销某次提交;   解决冲突后add/commit/push 

    git rebase -i  【IdBeg】【IdEnd】   // 前开后闭,将本地多次提交合并为一个以简化提交历史。

    git  rebase -i   head~3       // 合并前三个

    git  rebase  -abort    撤销rebase操作

     git  log  --oneline  -n10  --author="**"

    4.分支合并问题:

          4.1.把master分支合并到其它分支用rebase,把其它分支合并到master用merge。rebase不会产生多余的commit,并且保持直线。但会污染本地自开发分支,不建议

      •  首先切换到master分支:  git pull拉取最新分支状态;
      •  然后切回local分支:

                          git rebase -i  【IdBeg】【IdEnd】     // 前开后闭,将本地多次提交合并为一个以简化提交历史。否则git rebase master时会多次解决冲突(最坏情况下,每个提交都会相应解决一个冲突)。

                          git rebase master // 将master同步到本地,可能要手动解决冲突。【解决冲突试运行,用git-add后无需commit,只要执行: git rebase --continue】

      •  切换到master分支:   git merge local后,git push将master分支的提交上传。

          4.2 cherry-pick命令

      1.  git  rebase -i head~3      合并前三个,dev分支上合并提交,然后切换到master
      2.  git  cherry-pick  bc09e8d8   将dev上某次提交内容 合入到master分支上 。 【解决冲突后add/git cherry-pick --continue】

          4.3 推荐merge request

      1. git checkout -t origin/preview   // git checkout –b dev-guo origin/remote
      2. git pull   origin preview
      3. git merge   dev-guyan              //git merge origin/dev-guoyan
      4. git push origin preview

          4.4 撤销git reset

    --mixed   不删除工作空间改动代码,撤销commit,且撤销git add . 操作.    默认参数.   

    --soft    不删除工作空间改动代码,撤销commit,不撤销git add . 

    --hard   删除工作空间改动代码,撤销commit,撤销git add .      注意完成这个操作后,就恢复到了上一次的commit状态。

                    1.本地分支落后: Fast-forward合并,可以理解为HEAD指针指向的快速移动。    

                    2.本地分支超前:解决冲突后git-add,然后不用-m参数直接git commit:wq保存退出)。

          4.5 插入commit:

    • git  rebase  -i  b0aa963        # edit  commit_d后保存退出
    • [提交本次commit_t] 后 git rebase --continue    #  t会在d之后
    • git  push  -f                          # 有风险  !!

    =================================================================================================================

    git fetch只会将本地库所关联的远程库的commit id更新至最新. 本地库并没有变化,HEAD没有变化.

    git pull会将本地库更新至远程库的最新状态,HEAD也相应指向最新的commit id

    -- git pull发生冲突时, 先用git stash命令把当前修改过的工作存储到栈里面, 再git pull拉取代码. 再git stash pop把栈里面的代码还原,这时如果再冲突,需要手动解决.

     

     

     

     

     

  • 相关阅读:
    mysql随机数
    限制IP注册到Eureka
    Java日期格式化(DateFormat类和SimpleDateFormat类)
    直播类APP功能及技术难点(转)
    【转】Java之WeakReference与SoftReference使用讲解
    【转】android适配各种分辨率的问题
    国内市场上 Android 手机屏幕分辨率的比例情况如何?
    [转]mongodb与mysql相比的优缺点
    [转]一致性哈希算法及其在分布式系统中的应用
    [转]java byte 数据类型(基础)
  • 原文地址:https://www.cnblogs.com/bsszds930/p/12055872.html
Copyright © 2011-2022 走看看