本项目使用git进行分布式版本控制,关于git相关的详细使用说明可参考以下文档:
https://www.liaoxuefeng.com/wiki/896043488029600
main(本地和远程均可见):仅用于稳定版本的发布,不应在此分支上进行开发,仅由组长进行dev分支到main分支的合并
dev(本地和远程均可见):测试版本(非稳定)的发布,每个人都在dev上干活
member(仅本地可见):本地的个人分支,仅每个开发成员自己使用,需要提交更新时将个人分支合并到本地dev上,再将本地dev推送至远程dev
即创建git仓库的目录,如learngit
工作区中的隐藏目录.git即为版本库,该目录不属于工作区
0、查看本地git是否设置name和email
git config user.name
git config user.email
#没有则进行设置
git config --global user.name "Your Name"
git config --global user.email "email@example.com"
1、创建本地Pycharm项目(参照《PyCharm+Scrapy环境搭建》),这里仅需环境内存在scrapy和pymysql的package,无需创建scrapy项目
2、在项目根目录(存在.idea的目录)内打开git bash,拉取github项目文件
git clone https://github.com/yang71/first_group.git
拉取项目后目录结构如下:
3、进入first_group目录打开git bash,默认为main分支,查看分支列表,仅存在main分支
cd first_group
git branch #查看分支列表
4、我们需要在dev分支上进行开发,创建与远程dev分支对应的本地dev分支
git switch -c dev origin/dev #创建与远程dev分支对应的本地dev分支并切换至dev分支
#===============================上述命令等价于==============================#
git switch -c dev #创建本地dev分支并切换
git branch --set-upstream dev origin/dev #建立本地dev分支与远程dev分支关联
git branch #查看当前分支列表,发现存在main和dev分支
5、查看分支关联情况,如果未显示关联,使用之前提到的关联命令进行关联
git branch -vv #查看分支列表并显示关联远程仓库以及是否为no-ff模式(非快速合并)
6、创建仅本地使用的个人开发分支
git branch zqy #这里分支名可以自己起
git branch -vv #查看分支
7、切换至个人分支进行本地开发工作
git switch zqy #切换分支
本地开发环境搭建完成!
成员在member个人分支上进行开发——>将member分支合并至本地dev分支——>将本地dev分支推送至远程dev分支——>版本稳定后由组长拉取远程dev分支,将本地dev分支合并至本地main分支,再将本地main分支推送至远程main分支
进入之前搭建好的git本地仓库工作目录
切换为个人分支:
1、在myspider项目中创建爬虫文件进行开发和测试
2、开发完成,接下来提交更新
git add -A #将ALL改动从工作区添加到本地缓存区
git commit -m "xxx" #将本地缓存区改动添加至本地仓库 -m后为更新日志(可写上是谁更新的,更新了什么,如:zqy add Collection 11-20
切换为dev分支:
1、将个人分支合并至dev分支
#普通分支合并
git merge yourname #合并分支,将个人分支合并到当前分支
推荐使用以下方式进行合并,可保留合并日志:
#强制禁用Fast-forward,合并后的历史有分支,能看出来曾经做过合并
git merge --no-ff -m "merge with no-ff" yourname #禁用Fast foward的普通合并,会创建一个新的commit
2、接下来将dev推送至远程github仓库,分为两种情况
第一种情况:
之前有小伙伴进行过dev分支的推送,你的dev版本库落后于远程版本库
(1)先拉取远程仓库进行更新
git pull #如果别人和你编写了同一个博物馆的爬虫可能会产生冲突,可根据提示手动处理冲突
(2)将本地dev同步至远程dev
git push #本地dev与远程dev建立联系后可直接进行推送
git push -u origin dev #未建立联系使用该命令推送的同时建立联系
第二种情况:
之前没有小伙伴进行过dev分支的推送,你的dev版本与远程版本库相同
(1)直接进行推送
开发流程结束!
推送之前可先查看本地和远程分支树的情况
git log --graph --pretty=oneline --abbrev-commit
如图,当前分支指针HEAD指向main,dev分支在7e8b024版本,远程仓库的main和dev分支均在ID为5e96250的版本