day-88Git

Git(版本控制器)

版本控制器:

  可以管理编写的代码的仓库(文件夹),可以记录对仓库中所有被监测文件的任意操作

目的:

  方便程序员完成代码整合,完成协同开发

特点:

  分布式集群,多分支管理

 svn与git区别图:

多分支图:

Git工作流程图

安装Git

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

Git的使用

1.搭建本地git仓库

    将已有的文件夹作为git仓库
        >: cd 目标文件夹内部
        >: git init


    在指定目录下创建git仓库
        >: cd 目标目录
        >: git init 仓库名



2.配置操作git的用户信息(明确谁提交的,有局部的优先采用局部的,其次是全局的)

    当前仓库:局部  
        >: git config user.name '用户名'
            -- 用户名
        >: git config user.email '用户邮箱'
            -- 用户邮箱


    所有仓库:全局        
        >: git config --global user.name '用户名'
        >: git config --global user.email '用户邮箱'


3.常用指令

    a.查看仓库状态
        当仓库中有文件增加、删除、修改,都可以在仓库状态中查看
            >: git status  
                -- 查看仓库状态
            >: git status -s  
                -- 查看仓库状态的简约显示


    b.工作区操作( 空文件夹不会被git记录)
        撤销工作区操作:改、删                                        
        >: git checkout .
            -- 文件全部回滚,如改、删除操作,回滚的状态以版本库为基准
        >: git checkout 文件名
            -- 指定文件回滚


    c.工作区内容提交到暂存区
        >: git add .  
            -- 添加项目中所有文件
        >: git add 文件名  
            -- 添加指定文件


    d.撤销往暂存区提交:add操作状态的撤销(回到工作区)
        >: git reset HEAD .
            -- 撤销所有暂存区的提交
        >: git reset 文件名
            -- 撤销某一文件的暂存区提交


    e.提交暂存区内容到版本库
        git commit -m "版本描述信息"


    f.撤销版本库提交:版本库的回滚
        查看历史版本:
            >: 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

过滤文件(版本库还没创建就要创建过滤文件,并且过滤文件不需要过滤)

1.在仓库根目录下创建.gitignore.隐藏文件
2.文件与文件夹均可以被过滤
3.文件过滤语法
  文件或文件夹名:代表所有目录下的文件或文件夹都被过滤
  /文件或文件夹名:代表仓库根目录下的文件或文件夹被过滤
  目录/文件或文件夹名:代表特定目录下的文件或文件夹被过滤
  *可以出现在任何位置,代表模糊匹配

Git线上操作

创建项目:

git本地与云仓库同步

采用 https协议 或 ssh协议 与远程git仓库通信提交提交代码(一般都是项目负责人完成)
    1. https协议方式,无需配置,但是每次提交都有验证码云账号密码
        git remote add origin https://gitee.com/doctor_owen/luffy1.git      # 配置远程源
        git push -u origin master                                              # 提交本地仓库到远程源
    
    2. ssh协议,需要配置,配置完成之后就可以正常提交代码
        git remote add origin git@gitee.com:doctor_owen/luffy1.git          # 配置远程源
        git push -u origin master                                              # 提交本地仓库到远程源
    
    3.origin远程源的源名,可以自定义,后面跟地址;master是分支名,是默认的主分支
    
    4.查看源及源链接信息
        git remote
        git remote -v
        
      删除源链接
        git remote remove 源名字 

 GIt本地分支操作

1.创建分支(在主分支创建分支,版本库会拷贝相同的数据给分支,但不同分支文件是相互独立的,也就是操作文件不相互影响)
    git branch 分支名

2.查看分支
    git branch

3.切换分支
    git checkout 分支名

4.创建并切换到分支
    git checkout -b 分支名

5.删除分支
    git branch -d 分支名

6.查看远程源分支
    git branch -a

注:相同的分支只能往相同的分支提交,但拉取不受限制,

  当本机提交一个分支给云仓库,云仓库没有这个分支时会自动创建这个分支

 开发者加入Git项目组

1.生成本机的SSH公钥
    ssh-keygen -t rsa -C "owen@163.com"

2.添加开发者提供的公钥到个人公钥,并拷贝远程仓库SSH地址
    SSH地址:git@gitee.com:doctor_owen/luffy.git


3.在本机任意合适位置clone远程仓库到本地(分支和远程源都会拷贝下来)
    git clone git@gitee.com:doctor_owen/luffy.git

4.进入本地项目仓库进行开发,可以查看远程源信息
    >: cd luffy
    >: git remote -v


5.开发过程中要提交新功能时,一定要遵循先拉取(pull),在提交(push)
    1)提交新功能
        >: git add .
        >: git commit -m '提交新功能的信息说明'
    2)拉取远程仓库(不管本地是否已经和远程同步,每一次提交前都必须拉取)
        >: git pull 源名 分支名
    3)提交到远程仓库
        >:git push origin master
  

注:下拉出现#注释,输入:q退出即可

  退出后不会出现already提示,需要再次下拉,出现already在进行上传,

  原因是下拉数据中有一些新增的数据,需要注释

冲突解决

出现的问题: 

  下拉的时候报错,原因是版本不同但操作了同一个文件

     解决办法:

      删除文件中的报错信息,协商后,保存到本地版本库,在下拉最后提交

 

xadmin

1.安装:luffy虚拟环境下

    pip install https://codeload.github.com/sshwsfc/xadmin/zip/django2


2.注册app:dev.py

    INSTALLED_APPS = [
     
        # xamin主体模块
        'xadmin',
        # 渲染表格模块
        'crispy_forms',
        # 为模型通过版本控制,可以回滚数据
        'reversion',
    ]


3.设置主路由替换掉admin:主urls.py
    # xadmin的依赖
    import xadmin
    xadmin.autodiscover()

    # xversion模块自动注册需要版本控制的 Model
    from xadmin.plugins import xversion
    xversion.register_models()

    urlpatterns = [
      
        path(r'xadmin/', xadmin.site.urls),
    ]
    
4.xadmin:需要自己的数据库模型类,完成数据库迁移

    python manage.py migrate


5.完成xadmin模型表的注册与自定义xadmin主题:新建home/adminx.py

    import xadmin
    from . import models
    xadmin.site.register(models.Banner)


    from xadmin import views
    class GlobalSettings(object):
        """xadmin的全局配置"""
        site_title = "路飞学城"            # 设置站点标题
        site_footer = "路飞学城有限公司"  # 设置站点的页脚
        menu_style = "accordion"            # 设置菜单折叠
    xadmin.site.register(views.CommAdminView, GlobalSettings)


6.xadmin页面自定义组件显示效果

    # home/__init__.py
    default_app_config = "home.apps.HomeConfig"

    # home/apps.py
    from django.apps import AppConfig
    class HomeConfig(AppConfig):
        name = 'home'
        verbose_name = '我的首页'

 

原文地址:https://www.cnblogs.com/klw1/p/11397250.html