zoukankan      html  css  js  c++  java
  • Git

    一 Git初识

    1.什么是Git:

      版本控制器,更直白的说,团队开发的时候,管理代码使用的软件。

    2.Git和Svn的比较

    3.Git的工作流程

    4.Git分支管理

    master主分支:主要是项目上线的;dev开发分支:项目的新需求,更新,bug解决后再合并到主分支;prod预览分支:主要是给客户预览的。 

    二 Git使用

    一 Git安装

    # 1.下载对应版本:https://git-scm.com/download
    # 2.安装git:在选取安装路径的下一步选取 Use a TrueType font in all console windows 选项

    二 Git的基础使用和命令(在命令行操作)

    1.将已存在的文件夹 - 初始化为git仓库
    >: cd 目标文件夹内部
    例:从桌面进入F盘:cd f:
    >: git init
    例:在某文件夹中使用该命令
    文件夹不存在,在指定目录下 - 初始化git仓库
    >: cd 目标目录
    >: git init 仓库名
    2.在仓库目录终端下 - 设置全局用户
    git config --global user.name '用户名'
    git config --global user.email '用户邮箱'
    
    注:在全局文件 C:Users用户文件夹.gitconfig新建用户信息,在所有仓库下都可以使用
    在仓库目录终端下 - 设置局部用户
    git config user.name '用户名'
        -- 用户名
    git config user.email '用户邮箱'
        -- 用户邮箱
        
    注:在当前仓库下的config新建用户信息,只能在当前仓库下使用
    注:一个仓库有局部用户,优先使用局部用户,没有配置再找全局用户
    3.查看仓库状态
    # 当仓库中有文件增加、删除、修改,都可以在仓库状态中查看
    git status  
        -- 查看仓库状态
    git status -s  
        -- 查看仓库状态的简约显示
    4.撤销工作区操作:改、删(#前提是文件要提交到版本库;回滚到的是提交到版本库之前,的文件状态)
    # 通过任何方式完成的文件删与改
    # 空文件夹不会被git记录
    # 前提是文件要提交到版本库
    git checkout .
        -- 撤销所有暂存区的提交
    git checkout 文件名
        -- 撤销某一文件的暂存区提交

    5.工作区内容提交到暂存区

    # 工作区的文件添加到暂存区,会变成绿色
    
    git add .  
        -- 添加项目中所有文件
    git add 文件名  
        -- 添加指定文件
    撤销暂存区提交:add的逆运算
    # 回滚文件会回到工作区变成红色,文件内容修改不会和回滚
    git reset HEAD .
        -- 撤销所有暂存区的提交
    git reset 文件名
        -- 撤销某一文件的暂存区提交

     

    6.提交暂存区内容到版本库(提交到版本库之前要先提交到暂存区,而且版本库提交后无法通过 git status 查看到文件)
    # git commit -m "版本描述信息"
    撤销版本库提交:commit的逆运算(版本库回滚与工作区回滚相似,它是回滚到提交到版本库某个工作区的状态)
    回滚暂存区已经提交到版本库的操作:
        查看历史版本:
            >: git log
            >: git reflog
        查看时间点之前|之后的日志:
            >: git log --after 2018-6-1
            >: git log --before 2018-6-1
            >: git reflog --after 2018-6-1
            >: git reflog --before 2018-6-1
        查看指定开发者日志
            >: git log --author author_name
            >: git reflog --author author_name
        回滚到指定版本:
            回滚到上一个版本:
                >: git reset --hard HEAD^
                >: git reset --hard HEAD~1
            回滚到上三个版本:
                >: git reset --hard HEAD^^^
                >: git reset --hard HEAD~3
            回滚到指定版本号的版本:
                >: git reset --hard 版本号
                >: eg: git reset --hard 35cb292

    7.过滤文件

    # .gitignore 文件
    # 1)在仓库根目录下创建该文件
    # 2)文件与文件夹均可以被过滤
    # 3)文件过滤语法
    
    """ 过滤文件内容
    文件或文件夹名:代表所有目录下的同名文件或文件夹都被过滤
    /文件或文件夹名:代表仓库根目录下的文件或文件夹被过滤
    
    eg:
    a.txt:项目中所有a.txt文件和文件夹都会被过滤
    /a.txt:项目中只有根目录下a.txt文件和文件夹会被过滤
    /b/a.txt:项目中只有根目录下的b文件夹下的a.txt文件和文件夹会被过滤
    """
    #后端 注释
    .idea
    scripts
    db.sqlite3
    .DS_Store
    
    *.pyc
    
    
    .vscode
    *.suo
    *.ntvs*
    *.njsproj
    *.sln
    *.sw?
    
    
    .DS_Store
    node_modules
    /dist
    
    # local env files
    .env.local
    .env.*.local
    
    # Log files
    npm-debug.log*
    yarn-debug.log*
    yarn-error.log*
    
    # 前端
    .idea
    .vscode
    *.suo
    *.ntvs*
    *.njsproj
    *.sln
    *.sw?
    View Code

    三 创建远程gitee仓库(上传到云版本库整个流程)

    """
    1.注册码云账号并登录:https://gitee.com/
    2.创建仓库(截图)
    3.本地与服务器仓库建立连接
    """
    """
    1)本地配置线上的账号与邮箱
    >: git config --global user.name "doctor_owen"
    >: git config --global user.email "doctor_owen@163.com"
    
    2)在本地初始化仓库(git init),并完成项目的初步搭建(项目架构)(一般都是项目负责人完成项目启动)
    >:git init # 这个过程就是git的基础部分的本地操作

    3)添加到暂存区

    >:git add .
    4)添加到本地版本库
    >:git commit -m "信息"
    ##5)创建源(从这步开始可以参考下列2种协议上传方式):采用 https协议 或 ssh协议 与远程git仓库通信提交提交代码(一般都是项目负责人完成) 
    i) https协议方式,无需配置,但是每次提交都有验证管理员账号密码
    >: git remote add origin https://gitee.com/doctor_owen/luffy.git # 配置远程源
    >: git push -u origin master # 提交本地仓库到远程源 ii) ssh协议,需要配置,配置完成之后就可以正常提交代码
    >: git remote add origin git@gitee.com:doctor_owen/luffy.git # 配置远程源
    >: git push -u origin master # 提交本地仓库到远程源
    iii)查看源及源链接信息
    >: git remote
    >: git remote -v iv)删除源链接
    >: git remote remove 源名字
    注:origin远程源的源名,可以自定义;master是分支名,是默认的主分支

    5.码云创建云版本库

    6.创建源并上传

    #1.个人实例(使用https上传,直接执行下列 创建 git 仓库:最后2步):

    Git 全局设置:

    git config --global user.name "ZhuSai"
    git config --global user.email "2114161282@qq.com"

    创建 git 仓库:

    mkdir 11
    cd 11
    git init
    touch README.md
    git add README.md
    git commit -m "first commit"
    git remote add origin https://gitee.com/zhu_sai/11.git
    git push -u origin master

    已有仓库?

    cd existing_git_repo
    git remote add origin https://gitee.com/zhu_sai/11.git
    git push -u origin master

    个人实例2(使用ssh实例上传):

    #1.创建源:本地仓库与远程仓库建立源连接

    提:本地仓库已经创建且初始化完毕(代码已经提交到本地版本库)
    
    本机命令,添加远程源:git remote add origin ssh@*.git
        采用ssh协议的remote源

    #2.创建电脑的公钥私钥

    官网:https://gitee.com/help/articles/4181#article-header0
    cmd窗口:
    本机命令,生成公钥:ssh-keygen -t rsa -C "*@*.com"
        邮箱可以任意填写
    本机命令,查看公钥:cat ~/.ssh/id_rsa.pub
    
    码云线上添加公钥:项目仓库 => 管理 => 部署公钥管理 => 添加公钥 => 添加个人公钥

    #3.提交本地代码到远程仓库

    命令:git push origin master

    四 remote源操作

    1)查看仓库已配置的远程源
    >: git remote
    >: git remote -v
    
    2)查看remote命令帮助文档
    >: git remote -h
    
    3)删除远程源
    >: git remote remove 源名
    eg: git remote remove origin
    
    4)添加远程源
    >: git remote add 源名 源地址

    五 多分支开发

    1.创建分支
    >: git branch 分支名
    
    2.查看分支
    >: git branch
    
    3.切换分支
    >:  
    
    4.创建并切换到分支
    >: git checkout -b 分支名
    
    5.删除分支
    >: git branch -d 分支名
    
    6.查看远程分支
    >: git branch -a

    六 项目开发Git操作

    一 项目成员添加

    进入某个云端版本库添加成员三种方式(如果添加成员不成功请对方添加公钥);选择添加的类型和方式

     

    二 开发者操作云端版本库协同 开发 

    #1.进入本地一个文件夹下拉克隆云端版本库

    git clone 版本库地址

     #2.创建并切换到dev分支

     git checkout -b 'dev'

     #3.对下拉的文件代码进行修改和操作

    #4.提交云端版本库(如暂存库,本地版本库,云端版本库;先拉后提交)

    1.加入暂存区
    git add .
    
    2.提交本地版本库
    git commit -m '信息'
    3.拉取
    git pull 原名 分支名
    
    4.上传
    git push 原名 分支名

    项目开发 git操作总结

    1、开发前,拉一次远程仓库
    2、工作区进行开发
    3、将开发结果提交到本地版本库 - git status查看时没有待处理的事件
    4、拉取远程仓库(每一次要提交远程仓库前必须先拉)
    5、如果出现冲突,线下沟通(协商重新开发冲突文件),要重新走3、4步
    6、没有冲突,提交到远程仓库

    代码提交出现冲突

    https://blog.csdn.net/oHenZiJue/article/details/81562184

    1)打开冲突文件
    2)定位到冲突位置: >>>>>冲突开始 自身代码 ==== 冲突代码 <<<<<<版本号
    3)删除冲突提示信息:>>>>>冲突开始、====、<<<<<<版本号
    4)线下沟通整合自身代码与冲突代码,形成最终代码结果
    5)重新提交本地版本库,再拉取服务器代码,最后提交代码

    三 远程仓库合并分支

    四 本地分支合并开发

    1.主要是在本地新开分支,进行开发

    #例如把1分支,合并到2分支,需要在2分支下执行该命令
    git merge 2

    eg:将dev分支内容合并到prod分支上
    1)切换到prod分支:git checkout prod
    2)合并dev分支:git merge dev

    五 git的clone和pull fetch区别

    https://www.cnblogs.com/weberhuang/p/8939844.html

    六  pycharm使用Git

    #1.现在git软件窗口初始化 git init

    #2.将文件加入暂存区和本地版本库(如下图)

     #3.在git软件窗口提交到云端版本库

  • 相关阅读:
    入门菜鸟
    FZU 1202
    XMU 1246
    Codeforces 294E Shaass the Great 树形dp
    Codeforces 773D Perishable Roads 最短路 (看题解)
    Codeforces 814E An unavoidable detour for home dp
    Codeforces 567E President and Roads 最短路 + tarjan求桥
    Codeforces 567F Mausoleum dp
    Codeforces 908G New Year and Original Order 数位dp
    Codeforces 813D Two Melodies dp
  • 原文地址:https://www.cnblogs.com/tfzz/p/11754246.html
Copyright © 2011-2022 走看看