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. GIT和GitHub
基本概念
⼯作区:项⽬所在操作⽬录,实际操作项⽬的区域
暂存区: ⽤于记录⼯作区的⼯作(修改)内容
仓库区: ⽤于备份⼯作区的内容
远程仓库: 远程主机上的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打印简单界⾯输⼊命令发起请求
* 服务端主要负责逻辑数据处理
* 启动服务端后应该能满⾜多个客户端同时操作
客户端启动后即进⼊⼀级界⾯,包含如下功能:登录 注册 退出
* 退出后即退出该软件
* 登录成功即进⼊⼆级界⾯,失败回到⼀级界⾯
* 注册成功可以回到⼀级界⾯继续登录,也可以直接⽤注册⽤户进⼊⼆级界⾯


发布评论