博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
利用Git版本控制管理你的项目
阅读量:5150 次
发布时间:2019-06-13

本文共 3598 字,大约阅读时间需要 11 分钟。

准备工作

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

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

local_settings.py文件的内容如下:

# -*- coding:utf-8 -*-# 本地的settings 不用版本控制import osBASE_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 = TrueALLOWED_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:

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

# Byte-compiled / optimized / DLL files__pycache__/*.py[cod]*$py.class# C extensions*.so# Distribution / packaging.Pythonbuild/develop-eggs/dist/downloads/eggs/.eggs/lib/lib64/parts/sdist/var/wheels/pip-wheel-metadata/share/python-wheels/*.egg-info/.installed.cfg*.eggMANIFEST# 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 logspip-log.txtpip-delete-this-directory.txt# Unit test / coverage reportshtmlcov/.tox/.nox/.coverage.coverage.*.cachenosetests.xmlcoverage.xml*.cover.hypothesis/.pytest_cache/# Translations*.mo*.pot# Django stuff:*.loglocal_settings.pydb.sqlite3db.sqlite3-journal# Flask stuff:instance/.webassets-cache# Scrapy stuff:.scrapy# Sphinx documentationdocs/_build/# PyBuildertarget/# Jupyter Notebook.ipynb_checkpoints# IPythonprofile_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 filecelerybeat-schedule# SageMath parsed files*.sage.py# Environments.env.venvenv/venv/ENV/env.bak/venv.bak/# Spyder project settings.spyderproject.spyproject# Rope project settings.ropeproject# mkdocs documentation/site# mypy.mypy_cache/.dmypy.jsondmypy.json# Pyre type checker.pyre/
Python.ignore

(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 '初始化'

远端的操作

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

在码云创建一个私有仓库

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

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

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

大功告成!

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

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

转载于:https://www.cnblogs.com/ryxiong-blog/p/11611527.html

你可能感兴趣的文章
01: socket模块
查看>>
mysql触发器
查看>>
淌淌淌
查看>>
win10每次开机都显示“你的硬件设置已更改,请重启电脑……”的解决办法
查看>>
C++有关 const & 内敛 & 友元&静态成员那些事
查看>>
函数积累
查看>>
Swift 入门之简单语法(六)
查看>>
〖Python〗-- IO多路复用
查看>>
栈(括号匹配)
查看>>
Java学习 · 初识 面向对象深入一
查看>>
源代码如何管理
查看>>
vue怎么将一个组件引入另一个组件?
查看>>
bzoj1040: [ZJOI2008]骑士
查看>>
LeetCode 74. Search a 2D Matrix(搜索二维矩阵)
查看>>
利用SignalR来同步更新Winfrom
查看>>
反射机制
查看>>
CocoaPod
查看>>
BZOJ 1251: 序列终结者 [splay]
查看>>
5G边缘网络虚拟化的利器:vCPE和SD-WAN
查看>>
MATLAB基础入门笔记
查看>>