2023年11月29日发(作者:)

Python综合项⽬及⼯具

Python综合项⽬及⼯具

⽂章⽬录

1. 软件项⽬开发

1.1 软件项⽬开发流程

需求分析 ----> 概要设计 ---> 项⽬计划 ----> 详细设计---> 编码测试 -----> 项⽬测试 ----> 调试修改 ---> 项⽬发布----> 后期维护

需求分析 : 确定⽤户的真实需求

1. 确定⽤户的真实需求,项⽬的基本功能

2. 确定项⽬的整体难度和可⾏性分析

3. 需求分析⽂档,⽤户确认

概要设计:对项⽬进⾏初步分析和整体设计

1. 确定整体架构

2. 进⾏技术可⾏性分析

3. 确定技术整体思路和使⽤框架模型

4. 形成概要⽂档指导开发流程

项⽬计划 : 确定项⽬开发的时间轴和流程

1. 确定开发⼯作的先后顺序

2. 确定时间轴 ,事件⾥程碑

3. ⼈员分⼯

4. 形成⽢特图和思维导图等辅助内容

详细设计 : 项⽬的具体实现

1.形成详细设计⽂档 : 思路,逻辑流程,功能说明,技术点说明,数据结构说明,代码说明

按时完成项⽬⼯作和项⽬时间不⾜之间的冲突

项⽬实施⼈员之间的冲突

1.3 项⽬管理⼯具

编写⽂档: word ppt excel markdown LaTex

项⽬流程图 : Mindmanager visio

项⽬管理 : project

代码管理 : svn git

2. GITGitHub

基本概念

⼯作区:项⽬所在操作⽬录,实际操作项⽬的区域

暂存区: ⽤于记录⼯作区的⼯作(修改)内容

仓库区: ⽤于备份⼯作区的内容

远程仓库: 远程主机上的GIT仓库

注意: 在本地仓库中,git总是希望⼯作区的内容与仓库区保持⼀致,⽽且只有仓库区的内容才能和其他远程仓库交互。

2.2.1 初始配置

配置命令: git config --global [选项]

配置⽂件位置: ~/.gitconfig

1. 配置⽤户名

e.g. 将⽤户名设置为Tedu

sudo git config --global user.name Tedu

2. 配置⽤户邮箱

e.g. 将邮箱设置为lvze@tedu.cn

git config --global user.email lvze@tedu.cn

3. 查看配置信息

git config --list

注意: 该命令需要在某个git仓库下执⾏

2.2.2 基本命令

初始化仓库

git init

意义:将某个项⽬⽬录变为git操作⽬录,⽣成git本地仓库。即该项⽬⽬录可以使⽤git管理

查看本地仓库状态

git status

说明: 初始化仓库后默认⼯作在master分⽀,当⼯作区与仓库区不⼀致时会有提⽰。

将⼯作内容记录到暂存区

git add [files..]

e.g. 将⽂件 a b 记录到暂存区

git add a b

e.g. 将所有⽂件(不包含隐藏⽂件)记录到暂存区

git add *

取消⽂件暂存记录

git rm --cached [file]

设置忽略⽂件

在GIT项⽬中可以在项⽬根⽬录添加**.gitignore**⽂件的⽅式,规定相应的忽略规则,⽤来管理当前项⽬中的⽂件的忽略⾏为。

.gitignore ⽂件是可以提交到公有仓库中,这就为该项⽬下的所有开发者都共享⼀套定义好的忽略规则。在.gitignore ⽂件中,遵循相

应的语法,在每⼀⾏指定⼀个忽略规则。

.gitignore忽略规则简单说明

file 表⽰忽略file⽂件

*.a 表⽰忽略所有 .a 结尾的⽂件

!lib.a 表⽰但lib.a除外

build/ 表⽰忽略 build/⽬录下的所有⽂件,过滤整个build⽂件夹;

将⽂件同步到本地仓库

git commit [file] -m [message]

说明: -m表⽰添加⼀些同步信息,表达同步内容,不加file表⽰同步所有暂存记录的⽂件

e.g. 将暂存区所有记录同步到仓库区

git commit -m 'add files'

查看commit ⽇志记录

git log

git log --pretty=oneline

将暂存区或者某个commit点⽂件恢复到⼯作区

git checkout [commit] -- [file]

e.g. a.jpg⽂件恢复,不写commit表⽰恢复最新保存的⽂件内容

git checkout -- a.jpg

移动或者删除⽂件

git mv [file] [path]

git rm [files]

注意: 这两个操作会修改⼯作区内容,同时将操作记录提交到暂存区。

git

2.3 版本控制

退回到上⼀个commit节点

git reset --hard HEAD^

说明: ⼀个^表⽰回退1个版本,依次类推。当版本回退之后⼯作区会⾃动和当前commit版本保持⼀致

退回到指定的commit_id节点

git reset --hard [commit_id]

查看所有操作记录

git reflog

注意:最上⾯的为最新记录,可以利⽤commit_id去往任何操作位置

创建标签

标签: 在项⽬的重要commit位置添加快照,保存当时的⼯作状态,⼀般⽤于版本的迭代。

git tag [tag_name] [commit_id] -m [message]

说明: commit_id可以不写则默认标签表⽰最新的commit_id位置,message也可以不写,但是最好添加。

e.g. 在最新的commit处添加标签v1.0

git tag v1.0 -m '版本1'

查看标签

git tag 查看标签列表

git show [tag_name] 查看标签详细信息

去往某个标签节点

git reset --hard [tag]

删除标签

git tag -d [tag]

2.4 保存⼯作区

保存⼯作区内容

git stash save [message]

说明: 将⼯作区未提交的修改封存,让⼯作区回到修改前的状态

查看⼯作区列表

git stash list

说明:最新保存的⼯作区在最上⾯

应⽤某个⼯作区

git stash apply [stash@{n}]

查看现有分⽀

git branch

说明: 前⾯带 * 的分⽀表⽰当前⼯作分⽀

创建分⽀

git branch [branch_name]

说明: 基于a分⽀创建b分⽀,此时b分⽀会拥有a分⽀全部内容。在创建b分⽀时最好保持a分⽀"⼲净"状态。

切换⼯作分⽀

git checkout [branch]

说明: 2,3可以同时操作,即创建并切换分⽀

注意: git checkout -b [branch_name] 可以同时完成创建分⽀和切换分⽀的⼯作

合并分⽀

git merge [branch]

注意:分⽀的合并⼀般都是⼦分⽀向⽗分⽀中合并

删除分⽀

git branch -d [branch] 删除分⽀

git branch -D [branch] 删除没有被合并的分⽀

2.5.3 分⽀冲突问题

定义: 当分⽀合并时,原来的⽗分⽀发⽣了变化,在合并过程中就会产⽣冲突问题,这是合并分⽀过程中最为棘⼿的问题。

冲突情形1—— 原来的分⽀增加了新⽂件或者原有⽂件发⽣了变化

此时合并可能会出现:

此时只要先摁 ctrl-o 写⼊,然后回车,再摁ctrl-x 离开就可以了。

也可能出现提⽰让直⾏commit合并,那么此时只需要直⾏commit操作就可以了。这种冲突⽐较好解决。

选择项⽬后复制项⽬git地址

[外链图⽚转存失败,源站可能有防盗链机制,建议将图⽚保存下来直接上传(img-g8pplcfR-58)(/home/tarena/桌⾯/综合

项⽬/img/)]

在本地使⽤git clone⽅法即可获取

git clone /xxxxxxxxx

注意:

使⽤https链接

# 后续操作每次上传内容都需要输⼊密码,⽐较⿇烦,⼀般⽤于临时计算机的连接使⽤

git remote add origin /xxxxxxxxx

使⽤SSH连接

# 先建⽴秘钥信任

1. 将⾃⼰要连接github的计算机的ssh公钥内容复制

2. github上选择头像下拉菜单,settings-SSH and GPG keys-new SSH key

3. 将公钥内容添加进去,并且起⼀个标题名字,点击添加

#后续⽆需输⼊密码,⼀般⽤于⾃⼰信任的计算机

git remote add origin git@:lvze0321/

查看连接的远程仓库名称

git remote

断开远程仓库连接

git remote rm [origin]

如果是⾃⼰的仓库需要删除,则选择⾃⼰的仓库选择settings,在最后可以选择删除仓库。

2.6.3 远程仓库操作命令

将本地分⽀推送给远程仓库

# master分⽀推送给origin主机远程仓库,第⼀次推送分⽀使⽤-u表⽰与远程对应分⽀ 建⽴⾃动关联

git push -u origin master

git push origin [:branch] # 删除向远程仓库推送的分⽀

推送代码到远程仓库

# 如果本地的代码有修改项推送给远程仓库

git push

推送标签

git push origin [tag] 推送⼀个本地标签到远程

git push origin --tags 推送所有本地所有标签到远程

git push origin --delete tag [tagname] 删除向远程仓库推送的标签

推送旧的版本

# ⽤于本地版本⽐远程版本旧时强⾏推送本地版本

git push --force origin

从远程获取代码

git pull

3. 综合项⽬案例

可以通过基本的图形界⾯print以提⽰客户端输⼊。

* 程序分为服务端和客户端两部分

* 客户端通过print打印简单界⾯输⼊命令发起请求

* 服务端主要负责逻辑数据处理

* 启动服务端后应该能满⾜多个客户端同时操作

客户端启动后即进⼊⼀级界⾯,包含如下功能:登录 注册 退出

* 退出后即退出该软件

* 登录成功即进⼊⼆级界⾯,失败回到⼀级界⾯

* 注册成功可以回到⼀级界⾯继续登录,也可以直接⽤注册⽤户进⼊⼆级界⾯