美文网首页
git创建多分支并行开发

git创建多分支并行开发

作者: 张小凡123 | 来源:发表于2022-01-21 17:53 被阅读0次

    git多分支开发常用命令:

     ```
     git branch:查看当前本地分支
     git branch -a:查看当前所有本地分支和远程分支
     git branch devDebug:创建分支 
     git checkout devDebug:切换分支
     git checkout -b devDebug:创建分支的同时,并切换分支
    git branch -d devDebug:删除本地分支
    git push --delete origin devDebug:删除远程分支
    git push origin devDebug:把本地dev分支提交到远程仓库,并创建了远程分支dev
    git merge devDebug:合并分支devDebug到master分支
    git config branch.分支名.description  “描述信息”:给分支添加描述信息
    git config branch.分支名.description:查看分支描述
    git checkout -b dev(本地名) origin/dev(远程名) 拉取远程分支并在本地创建一个新的分支
    

    1.使用git clone url首次从远程拉去项目

    1.1使用命令git branch查看本地分支,打印如下:

     ```mac@MACdeiMac zlyjstaff % git branch
        * master
    

    1.2使用命令git checkout -b devDebug创建一个本地分支名为devDebug,并切换到当前devDebug分支,此时就有2个分支了

       mac@MACdeiMac zlyjstaff % git branch    
      * devDebug
       master
    
    注意:如使用git checkout master切换分支,如提示如下:
    error: Your local changes to the following files would be overwritten by checkout:
    ChngalaxyEmployee.xcworkspace/xcuserdata/mac.xcuserdatad/UserInterfaceState.xcuserstate
    Please commit your changes or stash them before you switch branches.
    Aborting
    

    使用命令git stash解决

      git stash:备份当前的工作区,从最近一次提交中读取相关内容,让工作区保持和上一次提交的内容一致。      
      同时,将工作区的内容保存到git栈中。
    

    1.3把本地devDebug分支提交到远程仓库,并创建了远程分支devDebug,使用如下命令:

    git push origin devDebug
    
    注意:首次使用git push origin devDebug直接会将master分支所有代码copy到devDebug分支,不需要使用git merge master分支合并命令

    devDebug分支命令创建好后,我们就可以在此分支下并行开发,不影响master重要分支,devDebug分支内容修改后,在由项目负责人(git管理员及以上权限)合并到master即可

    2.在devDebug分支下开发

    2.1使用命令git checkout devDebug 切换到devDebug分支,并打开项目,此时项目会自动切换到devDebug分支开发环境,如下:

     mac@MACdeiMac zlyjstaff % git checkout devDebug
    

    使用git branch查看下切换好没 *表示当前所在分支,如下

     mac@MACdeiMac zlyjstaff % git branch    
      * devDebug
       master
    

    2.2修改好代码后,将代码提交到远程devDebug分支,如下:

    mac@MACdeiMac zlyjstaff % git status
    On branch devDebug
    Changes not staged for commit:
    (use "git add <file>..." to update what will be committed)
    (use "git restore <file>..." to discard changes in working directory)
    modified:   
    ChngalaxyEmployee.xcworkspace/xcuserdata/mac.xcuserdatad/UserInterfaceState.xcuserstate
    modified:   ChngalaxyEmployee/AppDelegate.m
    
    no changes added to commit (use "git add" and/or "git commit -a")
    mac@MACdeiMac zlyjstaff % git add .
    mac@MACdeiMac zlyjstaff % git commit -m "更改devDebug分支代码"
    [devDebug 52763d3] 更改devDebug分支代码
    2 files changed, 1 insertion(+), 1 deletion(-)
    mac@MACdeiMac zlyjstaff % git push
    

    2.3将devDebug分支代码合并到master分支,如下:

    2.3.1切换到master分支,如下:

    git checkout master
    

    2.3.2使用git merge devDebug合并代码,如下:

    git merge devDebug
    

    注意:如报Updating c883a32..52763d3

    error: Your local changes to the following files would be overwritten by merge:

    ChngalaxyEmployee.xcworkspace/xcuserdata/mac.xcuserdatad/UserInterfaceState.xcuserstate

    Please commit your changes or stash them before you merge.

    Aborting,使用git stash命令解决

    2.4合并后将代码提交到远程master,使用命令git push,如提示:

    mac@MACdeiMac zlyjstaff % git push
    Everything up-to-date
    mac@MACdeiMac zlyjstaff % git pull
    error: Pulling is not possible because you have unmerged files.
    hint: Fix them up in the work tree, and then use 'git add/rm <file>'
    hint: as appropriate to mark resolution and make a commit.
    fatal: Exiting because of an unresolved conflict.
    
    使用如下方法解决:
      mac@MACdeiMac zlyjstaff % git add .
      mac@MACdeiMac zlyjstaff % git push    
      Everything up-to-date
      mac@MACdeiMac zlyjstaff % git commit -m "s"
      [master a6ab9d8] s
      mac@MACdeiMac zlyjstaff % git status
      On branch master
      Your branch is ahead of 'origin/master' by 3 commits.
      (use "git push" to publish your local commits)
    
    nothing to commit, working tree clean
    mac@MACdeiMac zlyjstaff % git push
    Enumerating objects: 16, done.
     Counting objects: 100% (16/16), done.
    Delta compression using up to 4 threads
    Compressing objects: 100% (6/6), done.
    Writing objects: 100% (6/6), 61.58 KiB | 4.40 MiB/s, done.
    Total 6 (delta 4), reused 0 (delta 0), pack-reused 0
    remote: Powered by GITEE.COM [GNK-6.2]
    To https://gitee.com/zlyjstaff/zlyjstaff.git
    a0994c7..a6ab9d8  master -> master
    

    相关文章

      网友评论

          本文标题:git创建多分支并行开发

          本文链接:https://www.haomeiwen.com/subject/pagehrtx.html