zoukankan      html  css  js  c++  java
  • git——版本控制及冲突解决

    协同开发,版本管理
    svn(集中式管理),git(分布式管理)
    远程仓库:github,码云,公司内部(gitlab)
    
    配置信息 全局
    git config --global user.email "lqz@qq.com"
    git config --global user.name "lqz"
    
    git config  user.email "egon@qq.com"
    git config  user.name "egon"
    
    -工作区,暂存区,版本库
    
    	-git init   # 初始化,生成一个.git 的文件夹
        -git stauts # 查看状态(红色和绿色),必须全绿再提交到版本库
    	-git add .  # 提交到暂存区  git add a.txt
        -git commit -m '注释'  # 从暂存区提交到版本库
        -git checkout . # 把工作区的内容恢复到版本库中最新的版本
        -git reset .   # 把暂存区的东西拉回到工作区(原来是绿的变红了)
        # 红色表示未被管理
    	# 绿色表示提交到暂存区
        -git reset --hard 版本号  # 回退到某个版本
        -git log   # 查看版本管理的日志
        -git reflog # 查看日志,条数更多,内容更少
        
    分支
        -git branch  # 查看所有分支,如果分支是绿色,表示是当前分支
        -git branch 分支名  # 创建分支
        -git chekout dev  # 切换到dev分支
        -git chekout -b dev2 # 创建并切换到dev2分支
        -git branch -d dev2 # 删除dev2分支,不能再这个分支上
        -git merge dev   # 你必须再其他分支(master),合并dev
        
    忽略文件
    	-空文件夹不被管理
    	-指定某些文件或者文件夹不被git管理
        -在项目根路径,跟.git文件夹一个路径,新建.gitignore.,在里面配置
        - 语法:
        	# 号是注释,没有用
            文件夹名字,表示文件夹忽略,不被管理
            /dist 表示根路径下的dist文件夹,不被管理
            *.py   表示后缀名为py的文件,都被忽略
            *.log*
    

    git:

    https://mp.weixin.qq.com/s?src=11&timestamp=1595294809&ver=2473&signature=teq192g3C6PFJIKUALY9HIBjO20aZeAL*Ms35fwJSYWbLjNfyouwjsxmzCnxdLpb5evdqZG-PByoFSHAaGRGqaNNNFsz2z2Pa-k02-4fXLVJxqovhETTxT56lzDDSa61&new=1

    1 git初始化,提交内容,远程连接

        git init   初始化一个本地文件夹为git管理的库
        
        git add a.txt  提交到暂存区
        git commit -m "first commit"   提交到版本库
        
        git remote   查看有哪些连接
        git remote add origin https://gitee.com/liuqingzheng/lqz_test.git  建立远程连接
        git push origin master   将修改 提交到 origin连接的 master分支上
    

    ssh连接和https连接

    # 1 公司内部大部分用ssh连接
        ssh配置,不用输密码
    # 2 配置如何做
    公钥和私钥 用户家目录的.ssh文件夹下(一个公钥,一个私钥)
            生成秘钥,如果没有-ssh-keygen -t rsa -C "lqz@qq.com"  
            把公钥复制出来,在码云上配置
            
    对称加密和非对称加密
    	-对称加密(加密和解密用同一套秘密,共享秘钥)
        -非对称加密(公钥和私钥),公钥加密,私钥解密
    

    2 git开发者

    1 将库的代码clone下来,得到管理的库,完整的 版本 和 日志控制
    	git clone https://gitee.com/liuqingzheng/lqz_test.git
    
        回复到任意版本
        git rest --hard 版本号 
        git checkout . 
        回到指针指向的版本,因为已经用git rest --hard把指针移动了,所以checkout .就是当前版本
        
    2 pull代码,更新文件夹为最新的
    	git pull origin master
        
    3 push代码,每次push代码,一定要先pull,再push,可能有冲突
    
    # 跟远程操作有三个命令
    git pull
    git push
    -git feacth(一般不用,他跟pull是一个东西,当作不知道)
    

    pycharm操作git

    在pycharm中操作git时,首先要在pycharm中配置,setting---》git--->git.exe的地址
    git clone
    

    出现冲突解决

    pull代码出现冲突 提交代码
    
    git pull origin master  拉下远程代码,两个人修改了同一个位置,会冲突
    
    <<<<<<< HEAD
    你的代码
    =======
    别人代码
    >>>>>>> origin/master
    
    处理方案
        -删除自己的代码
        -删除别人的代码
        -合并代码
    
    合并分支冲突  手动线下合并代码并提交到远程 
    	-git checkout master
        -git merge dev 
        -如果出冲突,解决
        -git add .
        -git commit 
        -git push
        
        -解决冲突(删你的,同事的,合并起来)
        -git add .  git commit 
    

    3 线下回滚,并提交

    # 1 切换到master分支
    # 2 回滚打某个版本  git reset --hard  版本号
    # 3 强制提交代码 git push origin master -f
    

    1 pycharm找回误删,修改的东西

    history
    

    2 git的变基

    git rebase
    
  • 相关阅读:
    STL_算法_05_集合算法
    STL_算法_04_算术和生成算法
    STL_算法_03_拷贝和替换算法
    STL_算法_02_排序算法
    STL_算法_01_查找算法
    STL_容器使用时机
    STL_容器共通能力
    Qt5_选择文件对话框
    Qt5_当前exe所在路径
    Java 静态代理和动态代理
  • 原文地址:https://www.cnblogs.com/pythonwl/p/13390913.html
Copyright © 2011-2022 走看看