1. 在本地新建项目文件夹InformationSystemLearn
2. 创建版本仓库
在终端中进入InformationSystemLearn,输入命令
git init
该命令可以把这个目录变为git管理的仓库。
3. 构建项目结构
在该目录下分别创建前后端的开发目录,本例中分别创建小程序的项目文件夹MiniProgram,Django框架的后端项目文件夹MyDjango,最终InformationSystemLearn的项目结构如下图所示
4. 生成.gitignore文件
在PyCharm中settings/Plugins中安装.ignore插件,使用插件生成.gitignore文件。(点击file->new->.ignore->gitignore,创建gitignore文件,在弹出的对话框中,勾选Example user template和Python)
该文件起的主要作用:有些时候部分放在项目文件夹中的文件不能提交到git的版本仓库里面,比如保存了数据库密码的配置文档等等。创建该文件,把要忽略的文件填进去就可以了。
参考:忽略特殊文件
将生成的.gitignore文件放在InformationSystemLearn的根目录中,以对MiniProgram的文件也起作用。
5. 第一次提交
在pycharm中打开MyDjango项目
点击右上角的commit按钮,将unversioned files添加并提交(git add & git commit)
左上角是文件的版本变化视图,现在文件的状态是所有文件都没有添加到版本库中,所以所有文件名都被标记为红色。
因为我们的git仓库是在InformationSystemLearn目录下,所以在MyDjango中使用git可视化工具,也可以对MiniProgram中的文件进行版本的管理。反之亦然。
中间的区域是填写提交信息(commit messages),可以输入任意内容,当然最好是有意义的,这样你就能从历史记录里方便地找到改动记录。
参考:创建版本库
最后,点击commit按钮,点击后,可以发现changelist区域清空了,同时点击任意一个文件,点击左下方的git窗口,可以看见该文件现在有“第一次提交”这个历史版本。
6.远程仓库
创建好本地的仓库后,我们需要在github(或者用gitee)上创建远程仓库,一方面可以将我们本地的代码保存在云端备份,另一方面,可以通过github与其他人进行协作。
首先,我们在github上创建好仓库如下图(同本地项目根目录同名)。
然后我们使用pycharm的git可视化工具,将本地仓库与github仓库进行关联。
在这里我们选择https的连接方式,如果选择SSH需要使用电脑生成ssh密钥并与你的账户绑定。
https方式只需要绑定你github仓库的git账号拥有对该仓库的读写权限。
- 点击VCS > Git > remotes
- 点击“+”号,在弹出的窗口中将复制的https://github.com/RainOfPhone/InformationSystemLearn.git 地址输入输入框中。并确认。
-
点击VCS > Git > git push,将本地master分支push到origin:master分支上即可。成功结果如下图。
7. 协作者拉取项目
项目创建人首先将项目协作者授予项目的访问权限(读写等)
然后项目协作者复制项目的github地址,在本地电脑终端存放项目的路径中,使用git clone 指令即可。
git clone https://github.com/RainOfPhone/InformationSystemLearn.git
如下图,在存放项目的空文件夹中打开终端,将InformationSystemLearn项目克隆到该目录中
然后项目协作者使用Pycharm打开MyDjango(python后端项目),或者打开MiniProgram(前端项目)进行编辑,提交版本,推送到远程仓库,或者从远程仓库拉取最新版本即可。
8. 多人协作
使用Pycharm的git可视化工具,按教程多人协作操作即可。
因此,多人协作的工作模式通常是这样:
- 首先,可以试图用git push origin <branch-name>推送自己的修改;
- 如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
- 如果合并有冲突,则解决冲突,并在本地提交;
- 没有冲突或者解决掉冲突后,再用git push origin <branch-name>推送就能成功!
- 如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream-to <branch-name> origin/<branch-name>。
这就是多人协作的工作模式,一旦熟悉了,就非常简单。
团队合作的分支结果如下图:
常用到的指令/功能为:
- git push
- git pull
- branchs
- remotes