利用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.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 '初始化'
远端的操作
本项目是利用码云进行版本控制的。
在码云创建一个私有仓库
创建完私有仓库后,会出现下面这样的页面:

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

大功告成!
这样的话线上也有了你的代码!
今后你就可以利用版本控制进行项目的开发了——自己开发与协同开发都很方便。
利用Git版本控制管理你的项目的更多相关文章
- Git版本控制管理教程(一):介绍
我的个人博客地址:damienzhong.com 原文链接:点击打开链接 1.1 背景 数据是短暂的,且容易丢失的,特别是作为开发人员的我们每天频繁的对项目代码进行更新,容易产生错误代码的变更或者项目 ...
- git版本控制管理实践-4
vcs: version control system 版本控制系统 local vcs, 集中式版本控制系统: centralized vcs; 分布式vcs: distributed vcs Lo ...
- [Git]自译《Git版本控制管理》——1.介绍(二)_Git诞生
译者前言: 本系列译文为作者利用业余时间翻译,有些疏漏与翻译不到位的地方敬请谅解. 不过也很希望各位读者能给出中肯的建议. 方括号的注释,如[1][2]为译者注. ...
- Git 版本控制管理(二)
Git 分支管理 1. 概念 我们来抽象的理解,分支就是科幻电影里面的平行宇宙,当你正在电脑前努力学习Git的时候,另一个你正在另一个平行宇宙里努力学习SVN.如果两个平行宇宙互不干扰,那对现在的你也 ...
- Git版本控制管理学习笔记1-介绍
几乎所有的版本控制工具都是出于同样的目的:开发以及维护开发出来的代码,方便读取代码的历史,记录所有的修改.这里,介绍的是当前在开源社区内非常流行的版本控制工具Git.它是由Linus Torvalds ...
- Git版本控制管理学习笔记3-基本的Git概念
为了更近一步的学习和理解Git的理念,这一节介绍一下Git中的一些基本概念. 基本概念 对象库图示 Git在工作时的概念 一.基本概念: 1.版本库: Git的版本库就是一个简单的数据库,其中 ...
- Git版本控制管理学习笔记2--起步
首先确保系统中已经安装了git,这里使用的linux系统. 一.命令行初步使用: 1.git命令: 列出它的选项和最常用的子命令.标准命令格式中,COMMAND代表的就是下面列出的子命令. [root ...
- Git 版本控制管理(一)
Git 是一个分布式版本控制工具,它的作者 Linus Torvalds 是这样给我们介绍 Git —— The stupid content tracker(傻瓜式的内容跟踪器) 关于 Git 的 ...
- Git版本控制管理学习笔记4-文件管理和索引
可以认为使用Git时,我们会遇到3个空间:工作目录.索引.版本库.我们关心的,就是在新建.修改等操作时,这三者之间发生了怎样的变化. 笼统的讲,就是在工作目录下编辑,在索引中积累修改, ...
随机推荐
- 国际化:node导语言包
项目做国际化,是离不开语言包的en.json.zh-CN.json等等.难道要一个一个json文件的写吗???不!!!只要我们写在excel里,然后用nodejs导出我们需要的语言包就可以了!这样大大 ...
- javaScript运动框架之匀速运动
运动框架 1.在开始运动时,关闭已有定时器 2.把运动和停止隔开(if/else) 匀速运动的停止条件 运动终止条件:距离足够近 Demo代码 <!DOCTYPE html> <ht ...
- 使用IL DASM来查看接口内的自动属性
在我的本地地址中 C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.2 Tools\x64下有一个文件 ildas ...
- usermod 修改用户信息
7.2 usermod 修改用户信息 1.命令功能 usermod 修改已存在的用户账号信息. 2.语法格式 usermod option login 参数选项说明 选项 选项说明 -c 修改用户pa ...
- caffe py3 docker
https://hub.docker.com/r/mapler/caffe-py3/ docker pull mapler/caffe-py3 docker run -it mapler/caff ...
- [POJ1664]放苹果(动态规划)
[POJ1664]放苹果 Description 把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法. Input 第 ...
- 移动端h5模拟长按事件
为啥写这篇文章 最近接了个需求,要求长按某个标签显示删除一个悬浮的删除按钮.这个需求其实在app上很常见,但是在移动端h5中,我们没有长按的事件,所以就需要自己模拟这个事件了. 大概效果如下: ps: ...
- excel中汉字转拼音
Excel中文转拼音(完整版)打开Excel->工具->宏->Viaual Basic编辑器在弹出来的窗口中对着VBAproject点右键->插入->模块下面会出现一个名 ...
- vue父组件异步获取动态数据传递给子组件获取不到值
原理: 在父组件中使用axios获取异步数据传给子组件,但是发现子组件在渲染的时候并没有数据,在created里面打印也是空的,结果发现一开始子组件绑定的数据是空的,在请求数据没有返回数据时,子组件就 ...
- js-计算textarea可剩余的字数???
效果图 HTML: JS: