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)
  • 相关阅读:
    保持URL不变和数字验证
    centOS ftp key?
    本地环境测试二级域名
    linux 解决You don't have permission to access 问题
    php smarty section loop
    php header Cannot modify header information headers already sent by ... 解决办法
    linux部分命令
    Linux 里面的文件操作权限说明
    用IT网络和安全专业人士视角来裁剪云的定义
    SQL Server 2008 R2炫酷报表"智"作有方
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/10971491.html
Copyright © 2011-2022 走看看