• Python实战项目5-Git远程仓库/分支合并/冲突解决


    Git分支

    image

    为什么要有分支
    	可以保证主分支的版本都是可以查看的版本
    	我们都在开发分支开发,开发完成 合并代码
    
    

    分支操作

    分支查看 git branch
    分支创建 git branch 分支名
    分支切换git checkout 分支名
    分支删除 git branch -d 分支名

    分支合并

    image.png

    • 创建分支 git branch dev
    • 切换到分支 git checkout dev
    • 在 dev环境中进行编辑

    合并(重要)

    将dev 合并进 master 分支 
    1. git branch checkout master
    2. git merge dev 把dev合并到master上
    
    分支合并可能会出冲突(如果master 和 dev 分支 同时修改了相同的代码
    进行合并操作的时候,git不清楚到底要保留谁的修改,所以会冲突
    )
    
    公司内分支方案:小公司
    -master分支,dev分支,bug分支  >>> 所有人在dev分支开发,开发完成合并到主分支
    -master分支,dev分支,bug分支  >>> 个人分支,个人在个人分支上开发
    
    

    Git远程仓库

    把本地的版本提交到远程仓库
    # github|gitee|gitlab
    
    我们以gitee作为远程仓库
    
    项目已经写好了一部分功能,所以我们需要将代码提交到远程仓库
    

    https连接远程仓库

    操作步骤
    本地:
    1.先在文件目录下 git init 初始化仓库
    2. 创建.gitignore 忽略文件 (忽略 日志 idea scripts文件夹 ...)
    image.png
    3.git status 查看状态
    4.git add . 提交到暂存区
    5.git commit -m '注释'

    至此已经提交此版本到本地版本库(被版本管理了)了

    **远程:
    **1.创建远程仓库,gitee上新建仓库
    image.png
    2.填写信息,保证仓库是空的(会出现教程)
    image.png
    按照远端提示的步骤操作 (全局配置)

    • git config --global user.name 'xxx'
    • git config --global user.name 'xxxxx@xxx'

    因为我们已有本地的仓库,
    3.已有仓库(远程提交)
    git remote add origin 远程仓库地址
    把本地版本库推送到远程仓库
    把本地当前所在分支推送到 origin 对应的远程master上
    git push origin 分支名
    image.png
    第一次进入需要输入密码(确认用户)
    输入自己的gitee账号密码(只需要输入一次本地就会进行保存 以后就不需要在进行登录的校验了~)

    windows电脑保存在凭据管理处image.png

    如果我们已经提交到版本库,但是又需要进行做.gitignore忽略文件的操作,我们可以这样操作
    1.将日志文件提交到版本库
    2..gitignore写上该文件的忽略,删除日志文件, 因为我们删除了这个日志文件,会被git检测到
    3.我们再次进行 git add . git commit -m '' 再次出现的文件就不会被管理了

    ssh方式连接远程仓库

    http协议提交:
    上面我们提交代码 输入了用户名/密码 才可以提交上去

    • 使用的是http协议提交的代码

    ssh方案:
    需要公钥和私钥

    • 私钥在本地保存,公钥配置到gitee上,以后再提交代码,就不需要其他任何认证了

    使用步骤:
    先要生成公钥私钥:
    生成教程
    image.png

    • 生成在C盘/用户/ .ssh文件夹中 两个文件,一个公钥,一个私钥

    公钥配置在gitee上
    image.png

    • 因为我们之前的远程仓库地址origin对应的地址是 https协议的

    • 现在我们需要使用shh提交代码,需要把原先的地址删除
      image

    • git remote remove 仓库名 删除原先提交地址

    • git remote add 仓库名 ssh地址 新增提交地址

    协同开发

    仓库管理员已经创建了仓库,对仓库有各种权限
    我们要进行多人开发 但是它们在自己的仓库中,并不能看到我自己的项目
    我们仓库管理员需要把开发人员设置为该仓库的开发者,
    设置完成后,在开发人员 的仓库中就能看到这个项目了
    仓库管理员,邀请开发者进入【邀请的开发者,对这个仓库就有读写权限,它们就可以开发代码/提交

    开发者本地没有代码
    1.需要把代码从远程仓库 clone 下来
    git clone git@gitee.com:liuqingzheng/luffy_api.git
    image.png
    image.png
    2.使用pycharm打开,配置好解释器,安装依赖
    3.开发完代码:
    git add
    设置用户名和邮箱(局部)
    局部配置的用户名密码 存 在.git 文件中的 config 文件中
    git config user.name xx
    git config user.email xx@xx
    全局的存储在C/用户/gitconfig文件中
    git commit -m '注释'
    git push origin master

    冲突解决

    原因:
    1.多人在同一分支开发
    2.分支合并出现冲突

    """
    冲突出现的例子:
    	张三
    	git pull origin master --拉下来项目
    
        修改文件部分内容(文件最后一行print(123))
    
        git add .
    
        git commit -m '注释'
    
        git push origin master
    
        李四
    	git pull origin master --拉下来项目
    
        修改文件部分内容(文件最后一行print(123))
    
        git add .
    
        git commit -m '注释'
    
        git push origin master
    """
    这样就会引起冲突,git 会有冲突信息的提示
    先把冲突位置箭头去掉,阅读代码,选择保留或删除别人或自己的代码
    再次对代码提交到远程仓库,这样的话就可以解决合并冲突问题
    
    冲突出现的时候:
    	如果要删除别人的代码,你需要跟别人说一声
        <<<<<<< HEAD   我的代码
        print('刘亦菲')
        =======   它的代码
        print('彭于晏')
        >>>>>>> 6f720edbd84c8744b1c7c10767fb89a5d0fa98f5
    
    

    避免出现冲突:

    如果想要少出现冲突,需要勤拉取代码,注意自己代码与主体代码更新频率

    '''
    例子冲突出现的原因2:
    -我:
        1 创建dev分支 
            git branch dev
        2 在dev分支的views.py 中第2行加入代码
        3 提交到本地仓库
            
            
    -别人:
        1 在主分支的views.py 中第2行加入代码
        2 提交到版本库
        3 在主分支合并代码  git merge dev
        4 冲突了,解决冲突
        5 再提交代码,到此结束
    '''
    

    线上分支合并

    线下合并分支
    git merge dev
    线上合并分支
    我们可以在gitee上新建分支
    本地同步远程dev分支
    git pull origin dev 拉下来了, 还看不到,只有切过去才能看到
    git checkout dev 切换分支到dev
    我们在dev上面开发代码,随便添加代码
    提交到版本库后
    我们需要推到远端仓库的dev分支
    git push origin dev

    master中没有代码,dev中有提交的,现在要线上分支合并
    把远程的dev合并进远程的master
     提交pr    提交rr
    在网站上,申请提交pull request
    领导审核,测试,通过后,点击合并
    线上dev分支就合并进线上的master分支了
    

    image

    远程仓库回滚

    最好不要用
    如果我们想要远程的代码回到某一个版本
    步骤:
    1.本地版本回退
    git reset --hard 版本号
    2.强行推到远端
    git push origin master -f


    __EOF__

  • 本文作者: 随风dd
  • 本文链接: https://www.cnblogs.com/ddsuifeng/p/17171857.html
  • 关于博主: 评论和私信会在第一时间回复。或者直接私信我。
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
  • 声援博主: 如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。
  • 相关阅读:
    青云1000------华为昇腾310
    科创人·蓝凌董事长杨健伟:夯实“四梁八柱”,让数字化“城中村上建高楼”
    高端两轮电动车是否担得起“高端”头衔?
    云原生Kubernetes:kubectl管理命令
    C 语言 时间函数使用技巧(汇总)
    spring-boot 操作 mongodb 数据库
    [树形dp]Orgrimmar 2022杭电多校第8场 1008
    JavaScript异步编程——08-Promise的链式调用【万字长文,感谢支持】
    MindSpore:环境问题案例
    Java后端面试:MySQL面试篇(底层事务、SQL调优)
  • 原文地址:https://www.cnblogs.com/ddsuifeng/p/17171857.html