• 利用Git版本控制管理你的项目


    准备工作

    项目创建完成后,将项目版本控制起来,今后每个版本的迭代会非常清楚,同时也有助于项目进行协同开发。

    还有一个十分重要的问题是:项目上线后,线上的运行的程序的配置与线下进行测试的配置文件是不一样的(比如数据库的配置、DEBUE模式、ALLOWED_HOSTS等等),因此我们这里需要为线下的测试环境新建一个单独的测试文件local_settings.py,

    local_settings.py文件的内容如下:

    # -*- coding:utf-8 -*-
    # 本地的settings 不用版本控制
    import os
    
    BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
    
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.sqlite3',
            'NAME': os.path.join(BASE_DIR, 'local_db.sqlite3'),
        }
    }
    
    DEBUG = True
    
    ALLOWED_HOSTS = []

    注意,这个local_settings.py文件是不需要进行Git版本控制的!后面会有具体的配置说明。

    创建好这个配置文件并把本地测试需要的配置数据写入后,我们需要让它在本地测试的时候生效

    一个比较好的办法是这样实现的:在项目的settings.py文件中的最后import这个local_settings.py文件,根据Python文件执行以及import导入模块的机制,我们可以让本地测试用到的数据覆盖前面线上的配置,但是需要捕获一下异常,因为我们没有对本地的这个测试文件进行版本控制!

    settings.py文件中的最后加入下面这段代码:

    # 线下的话可以直接用
    # 线上不对local_settings进行版本控制~做异常处理
    try:
        from .local_settings import *
    except ImportError:
        pass 

    本地项目与Git远程仓库连接的过程

    本地的基础操作

    先找到项目在本地存放的目录

    在项目目录中点击右键——“GIt Bash Here”

    在打开的git命令界面中输入 git init

    将本地配置的local_settings.py文件及其生成的数据库文件等等其他不需要的文件忽略掉

    利用gitignore:gitignore下载地址

    (1)进入上面的gitignore的下载地址后,找到Python.gitignore,把里面的代码复制一下,或者直接用我这边复制好的也行:

    # Byte-compiled / optimized / DLL files
    __pycache__/
    *.py[cod]
    *$py.class
    
    # C extensions
    *.so
    
    # Distribution / packaging
    .Python
    build/
    develop-eggs/
    dist/
    downloads/
    eggs/
    .eggs/
    lib/
    lib64/
    parts/
    sdist/
    var/
    wheels/
    pip-wheel-metadata/
    share/python-wheels/
    *.egg-info/
    .installed.cfg
    *.egg
    MANIFEST
    
    # PyInstaller
    #  Usually these files are written by a python script from a template
    #  before PyInstaller builds the exe, so as to inject date/other infos into it.
    *.manifest
    *.spec
    
    # Installer logs
    pip-log.txt
    pip-delete-this-directory.txt
    
    # Unit test / coverage reports
    htmlcov/
    .tox/
    .nox/
    .coverage
    .coverage.*
    .cache
    nosetests.xml
    coverage.xml
    *.cover
    .hypothesis/
    .pytest_cache/
    
    # Translations
    *.mo
    *.pot
    
    # Django stuff:
    *.log
    local_settings.py
    db.sqlite3
    db.sqlite3-journal
    
    # Flask stuff:
    instance/
    .webassets-cache
    
    # Scrapy stuff:
    .scrapy
    
    # Sphinx documentation
    docs/_build/
    
    # PyBuilder
    target/
    
    # Jupyter Notebook
    .ipynb_checkpoints
    
    # IPython
    profile_default/
    ipython_config.py
    
    # pyenv
    .python-version
    
    # pipenv
    #   According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
    #   However, in case of collaboration, if having platform-specific dependencies or dependencies
    #   having no cross-platform support, pipenv may install dependencies that don't work, or not
    #   install all needed dependencies.
    #Pipfile.lock
    
    # celery beat schedule file
    celerybeat-schedule
    
    # SageMath parsed files
    *.sage.py
    
    # Environments
    .env
    .venv
    env/
    venv/
    ENV/
    env.bak/
    venv.bak/
    
    # Spyder project settings
    .spyderproject
    .spyproject
    
    # Rope project settings
    .ropeproject
    
    # mkdocs documentation
    /site
    
    # mypy
    .mypy_cache/
    .dmypy.json
    dmypy.json
    
    # Pyre type checker
    .pyre/
    Python.gitignore

    (2)然后,在自己项目的“根目录”下新建一个名为“.gitignore”的文件,先把上面的代码复制进去。

    (3)通过仔细看里面的代码我们可以发现:忽略文件的名单中已经有了我们之前创建好的“local_settings.py”文件了——看来这已经是一个不成文的规定了~~如果你非要把本地测试的配置文件改成其他的名字,那么一定要记得把你自己的这个本地的测试文件的名字写在.gitignore文件中去!

    (4)关于sqllit数据库的配置:.gitignore文件中除了写好了local_settings.py,其实还有“db.sqlite3”,就是默认生成的sqllit数据库文件。但是我们再看一下上面自己配置的local_settings.py文件,我把本地生成的数据库的名字改成了local_db.sqlite3。所以我们还得把这个local_db.sqlite3写入到.gitignore文件中去!

    (5)Pycharm在创建项目的时候会在项目的跟目录中自动生成一个名为.idea的目录,我们应当把这个目录也加进去——注意加入的是目录的格式:.idea/

    (6)最后提示大家一点:.gitignore文件中也应当把虚拟环境过滤掉,默认有对虚拟环境的过滤,但是需要注意对应目录的名字!

    执行 git status 查看

    执行 git status 命令查看git进行版本控制的文件及目录:

    执行 git add . 将文件保存到缓存区

    git add .

    执行 git commit -m '初始化' 添加文件描述

    git commit -m '初始化'

    远端的操作

    本项目是利用码云进行版本控制的。

    在码云创建一个私有仓库

    创建完私有仓库后,会出现下面这样的页面:

    在本地与远程仓库进行连接

    根据上面的提示,在本地进行与远程仓库连接的配置:

    大功告成!

    这样的话线上也有了你的代码!

    今后你就可以利用版本控制进行项目的开发了——自己开发与协同开发都很方便。

  • 相关阅读:
    VS2013快速安装教程
    软件工程课程的感想
    GitHub和Microsoft TFS对比有什么优势
    拼接素数
    C语言程序题
    vue中的实例方法的底层原理
    ios 安卓
    防抖
    伪数组转真数组的放法
    http和https的一种能力?
  • 原文地址:https://www.cnblogs.com/paulwhw/p/11226280.html
Copyright © 2020-2023  润新知