zoukankan      html  css  js  c++  java
  • git的使用

    git

    版本控制器

    完成 协同开发 项目,帮助程序员整合代码
    	i)帮助开发者合并开发的代码
    	ii)如果出现冲突代码的合并,会提示后提交合并代码的开发者,让其解决冲突
    
    软件:SVN 、 GIT(都是同一个人的个人项目)
    	github、gitee(两个采用git版本控制器管理代码的公共平台)
    
    git:集群化、多分支
    

    git与svn比较

    img

    img

    git的工作流程

    img

    版本间通信

    img

    分支管理

    img

    基本使用

    -工作区,暂存区,版本库
        
    	-git init   # 初始化仓库,生成一个.git 的文件夹
        -git stauts # 查看状态(红色和绿色),必须全绿再提交到版本库
    	-git add .  # 提交到暂存区
        -git commit -m '文字' # 从暂存区提交到版本库
        
        -git checkout . # 把工作区的代码恢复到版本库中最先的代码
        -git reset .   # 把暂存区的东西拉回到工作区(原来是绿的变红了)
        -git reset --hard 版本号  # 回退到某个版本 
        
    	-git config --global user.name '用户名'  #配置全局用户名
    	-git config --global user.email '用户邮箱' #配置全局邮箱
    

    分支操作

    -分支
        -git branch  # 查看所有分支,如果分支是绿色,是再当前分支是
        -git branch 分支名  # 创建分支
        -git chekout dev  # 切换到dev分支
        -git chekout -b dev2 # 创建并切换到dev2分支
        -git branch -d dev2 # 删除dev2分支,不能再这个分支上
        -git merge dev   # 你必须再其他分支(master),合并dev
    

    远程连接

    #远程连接一个空的仓库
        mkdir lqz_test
        cd lqz_test
        git init
        touch a.txt
        git add a.txt
        git commit -m "first commit"
        git remote add origin xxx  # 连接远程
        git push  origin master
        
    #连接已有仓库
        cd b
        git remote add origin xxx
        git push origin master
        
        
    -git remote # 查看远程仓库(没有就看不到)
    -git remote add origin xxx # 跟远程仓库建立连接
    -git push origin master  # 把本地的master分支提交到远程的origin,需要输入用户名和密码(之前存的需要删掉)
    

    参与项目的开发

    1. 访问项目的连接,将项目克隆到当前路径
    -git clone xxx
    克隆下的项目可以进行git的版本管理以及日志控制
    也可以回退到任意版本
    -git rest --hard 版本号 #回退到指定版本
    -git checkout . #回退当前最新版
    
    2. 本地提交
    git status 查看操作的过文件
    git add . 将文件提交到暂存区
    git commit -m '注释' 将暂存区文件提交到版本库进行管理
    git push origin master 提交到origin远程服务端下的master分支
    
    3. 提交远程前一定要先将项目拉下来一遍
    git pull origin master 将最新的版本导入到本地
    
    #这样如果有冲突,可以直接查看并解决,而不是出现跳版本的问题
    
    

    ssh和https连接

    https连接,访问后需要输入账号和把密码才能提交
    ssh则在配置之后不需要输入密码了
    
    #如何配置ssh
    	-对称加密(加密和解密用同一套秘密)
        -非对称加密(公钥和私钥),公钥加密,私钥解密
        
        -生成一对公钥和私钥(用命令)
        	-https://gitee.com/help/articles/4181
            -ssh-keygen -t rsa -C "hoeel@qq.com" 生成到用户家目录的.ssh文件夹下(一个公钥,一个私钥)  
            -把公钥复制出来,再码云上配置
            -码云线上添加公钥:项目仓库 => 管理 => 部署公钥管理 => 添加公钥 => 添加个人公钥
    
    

    协同开发

    1.多名程序员在同一分支(一般是dev)上进行开发
    
    2.项目代码本地开发,上传到服务器时,先pull将代码更新到最新版
    
    3.然后在将没有问题的代码提交到dev分支
    
    
    为什么更新代码时会出现冲突
    当通过git pull origin master  拉下远程代码,同事和你修改了同一个位置,会冲突
    
    出现冲突的前提:
    1)不同开发者同时操作了同一文件
    2)并且在相同行写了代码
    
    
    在冲突位置会用头尾包含
    <<<<<<< HEAD
    你的代码
    =======
    别人代码
    >>>>>>> origin/master
    
    处理方案(需线下沟通解决)
        -删除你的代码
        -删除同时代码
        -合并你们的代码
    

    远程仓库回滚

    """
    用dev分支举例
    1)本地切换到远程要回滚的分支对应的本地分支
    git checkout dev
    
    2)回滚本地分支
    git reset --hard 版本号
    
    3)本地版本强行提交给服务器
    git push origin dev -f
    """
    

    分支合并出现冲突解决

    # 1 远端创建一个dev分支
    	-在远端直接创建
        -本地创建,提交到远端
        git checkout -b dev
        git push origin dev
    # 2 本地新建一个dev_bug分支
    	-dev_bug分支改了文件
        -dev分支改了同样的文件
        -合并就出冲突
        -git merge dev_bug (在dev分支上操作)
        -解决冲突(删你的,同事的,合并起来)
        -git add .  git commit 
        -正常了,冲突解决
     # 3 手动线下合并代码并提交到远程
    	-git checkout master
        -git merge dev 
        -如果出冲突,解决
        -git add .
        -git commit 
        -git push..
    
    
  • 相关阅读:
    MySQL 内存溢出
    使用pt-fifo-split 工具往mysql插入海量数据
    Summary: Calculate average where sum exceed double limits
    Pocket Gem OA: Log Parser
    Pocket Gem OA: Path Finder
    Leetcode: Sliding Window Median
    Leetcode: Number Complement
    FB面经 Prepare: Even Tree
    FB面经 Prepare: All Palindromic Substrings
    FB面经 Prepare: Largest Island
  • 原文地址:https://www.cnblogs.com/Henry121/p/13358559.html
Copyright © 2011-2022 走看看