zoukankan      html  css  js  c++  java
  • dev和master合并冲突解决

    dev和master合并冲突解决

    git命令总结

     
    • git add总结
    ·  git add -A  提交所有变化
    
    ·  git add -u  提交被修改(modified)和被删除(deleted)文件,不包括新文件(new)
    
    ·  git add .  提交新文件(new)和被修改(modified)文件,不包括被删除(deleted)文件
    • 克隆远程仓库
    git clone git-address
    • 删除所有本地分支,除了DEV
    git stash && git checkout dev && git branch | grep -v "dev" | xargs git branch -D
    
    • 删除缓存,添加ignor
    git rm -r --cached .
    git add .
    git commit -m 'update .gitignore'
    • 添加变更并提交
    git add -A  # A表示把所有更新添加到临时区
    git commit -m "注释"
    • 拉最和推送代码
    git pull # 拉取
    git push # 推送
    • 删除缓存,过滤文件通用代码.gitignore
    git rm -r --cached .
    git add .
    git commit -m 'update .gitignore'
    • 新建本地分支
    git checkout -b 123;
    • 本地分支推到远程,并建立关联
    git push --set-upstream origin 123
    • 标签tag的操作
    git tag #查看版本
    git tag [name] #创建版本
    git tag -d [name] #删除版本
    git tag -r #查看远程版本
    git push origin [name] # 创建远程版本(本地版本push到远程)
    git push origin :refs/tags/[name] # 删除远程版本
    • 合并rebase分支
    git checkout dev
    git pull --rebase
    git checkout my
    git rebase dev
    # 解决冲突
    git add -A
    git rebase –continue
    git push -f
    # 自动全并COMMIT:git commit --amend --no-edit 如果代码没有冲突,5,6,7可以省略
    • 将多个commit合并成一个
    git merge-base origin/dev my
    # display your hashcode
    git reset --soft `your hashcode`
    git add -A
    git commit -m "commit"
    git push -f
    • 将本地仓库上传到线上
      1. 在远程建立一个仓库,它有https和ssh的地址
      2. 本地建立仓库文件夹 mkdir validate
      3. 在进行文件夹,cd validate
      4. git初始化,git init
      5. 映射远程仓库,git remote add origin git@git.i-counting.cn:bfyxzls/schedle.git
      6. 添加一个readme.md文件
      7. 添加它到本地仓库,git add readme.md
      8. 提交本地,git commit -m "initial"
      9. 将本地仓库提交的内容推到远程仓库的对应分支,git push -u origin master
      10. 大功告成
    • 查看提交的日志
    git log --oneline //会列出所有commitId
    • 直接切换到历史版本
     git reset --hard commitId
    • 打标签

    我们可以为某个时间点上线的版本打个标签,当这个版本有问题时,可以去还原它。

    1. 列表所有标签 git tag
    2. 筛选标签 git tag -l 'v1.4.*'
    3. 新建标签 git tag -a v1.4 -m '对标签的描述'
    4. 显示标签的具体信息 git show v1.4
    5. 上传标签 git push origin v1.5

    前景

    master主分支,dev是开发分支,master会保持最新的dev代码

    问题的产生

    1. dev开发新功能
    2. 版本发布,dev合并到了master,发布生产环境
    3. 新需求来了,在dev进行开发
    4. 同时,线上代码有bug,从master拉新分支,改bug,之后合并到master
    5. master与dev这时代码不一致,以后合并有可能会有冲突
    6. dev开发完成,上线前,先与最新master做一下rebase,解决冲突
    7. git rebase会根据你的git commit进行冲突解决,每次都要进行git rebase --continue,这是比较烦人的
    8. git log找到dev是在哪个commit里合并到master的,找到后git reset --soft 把dev新需求合并成一个commit
    9. 最后再git rebase就可以了

    相关git命令

    找与master相同代码时的commit id

    $ git log
    commit 9f4c0939ce30aca3f4e18e69b2deed7b721b3ebb (HEAD -> master)
    Author: lind <bfyxzls@sina.com>
    Date:   Sat Apr 27 12:45:24 2019 +0800
    
        master2
    
    commit 09b6898a5b32ac5e23745f7b343424170869045a
    Author: lind <bfyxzls@sina.com>
    Date:   Sat Apr 27 12:44:48 2019 +0800
    
        master1
    
    commit c9507744d6528a3df9529d92953c896a4c2d38a7
    Author: lind <bfyxzls@sina.com>
    Date:   Sat Apr 27 12:43:28 2019 +0800
    
        dev2
    
    commit 817d0275820c83acdf5513a5fd5855a6eb84443c
    Author: lind <bfyxzls@sina.com>
    Date:   Sat Apr 27 12:42:59 2019 +0800
    

    合并commit

    $ git reset --soft  c9507744d6528a3df9529d92953c896a4c2d38a7
    $ git add .
    $ git commit -m "合并commit"

    在rebase时,冲突提交数为1个,之前是dev有几次新的提交,就要解决几次

    $ git rebase master
    Administrator@WIN-1AL08P10TJ8 MINGW64 /c/testgit (dev|REBASE 1/1)

    解决冲突,删除或者保留对应的代码,最后再保存,提交即可

    Administrator@WIN-1AL08P10TJ8 MINGW64 /c/testgit (dev|REBASE 1/1)
    $ git add .
    
    Administrator@WIN-1AL08P10TJ8 MINGW64 /c/testgit (dev|REBASE 1/1)
    $ git rebase --continue
    Applying: 合并commit
    
    Administrator@WIN-1AL08P10TJ8 MINGW64 /c/testgit (dev)
  • 相关阅读:
    Redis (error) NOAUTH Authentication required.问题
    C# File() 方法 contentType参数取值
    Java常用快捷键汇总(杂乱无章,持续更新)
    VUE项目发布至IIS(不涉及代理)
    js的休眠实现---sleep()
    Oracle 分页
    winform Panel设定 按钮显示位置
    Chart控件绘制实时折线图表——Spline
    .NET打包合并dll方法
    ComboBox绑定键值对
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/10971491.html
Copyright © 2011-2022 走看看