数据治理 | 团队必备!使用Git进行多人协同工作
目录
一、场景模拟
二、工作流程
(一)课题准备阶段 (二)王教授设置远程仓库 (三)小赵克隆远程仓库并开始材料收集工作 (四)小李克隆远程仓库并开展工作 (五)王教授管理课题进度 三、本文总结
本文共4328个字,阅读大约需要11分钟,欢迎指正!
上期推文,我们学习了 Git 远程仓库的搭建以及使用远程仓库管理文档(点此查看上期文章:数据治理 | 科研团队协同工作新神器!Git远程仓库的使用),我们回顾一下基本操作流程:
登录 Github,创建账号和远程仓库。 使用 ssh-keygen 命令创建密钥对,并将公钥上传至远程仓库 使用 git remote add 命令,把本地代码库和远程仓库“绑定” 使用 git push 将本地代码库同步到远程仓库
本期推文主要介绍如何使用远程仓库进行协同工作,我们会模拟一个团队协作的场景,帮助大家掌握 Git 相关知识。
Part1场景模拟
我们模拟如下协同工作场景:王教授辅导两位学生小赵和小李完成某大学生创新课题项目。
团队工作安排如下:
王教授负责课题的进度管理和论文指导 小赵负责材料收集和会议记录 小李负责计量模型和论文写作
课题推进工作中,王教授部署了Git 仓库进行项目的文档管理,有效提高了团队的工作效率,辅导学生顺利完成了本次课题。
Part2工作流程
(一)课题准备阶段
正式开始用Git进行协同工作前,有以下几个事项必须提前准备完成:
团队成员需要先注册 Github 账号(读者可以选择合适的平台,本文以 Github 为例进行讲解) 每个团队成员设置各自的SSH密钥,并上传至各自的 Github 账号中。可参考上期推文数据治理 | 科研团队协同工作新神器!Git远程仓库的使用, 本期推文也补充了 mac/linux 用户的操作说明:
mac / linux 用户执行如下操作:
# 下面的命令中,wang 表示用户名称,并且已经存在于 mac/linux 系统中。
# linux 系统中,用户默认目录为 /home/wang
ssh-keygen -t ED25519 -P "" -C "wang" -f /Users/wang/.ssh/wang
# 在 /Users/wang/.ssh 目录下会出现下面两个文件
# wang --> 私钥文件
# wang.pub --> 公钥文件
# 对 mac 用户,需要额外添加如下命令,让私钥添加到缓存中:
# zsh 表示mac用户使用的shell版本,如果使用 bash Shell 则替换成 bash
ssh-agent zsh
ssh-add /Users/wang/.ssh/wang
windows 用户运行 “Git Bash Here”,然后执行如下操作:
# 下面的命令中,xiaozhao 表示windows系统的用户名称, 读者需要替换成自己的windows用户名
# mkdir -p 用于生成 .ssh 目录
mkdir -p /c/Users/xiaozhao/.ssh
# 下面的命令中,xiaozhao 表示用户名称, 读者需要替换成自己的用户名。
ssh-keygen -t ED25519 -C "xiaozhao" -P "" -f /c/Users/xiaozhao/.ssh/xiaozhao
# 在 /c/Users/xiaozhao/.ssh/ 目录下会出现下面两个文件
# xiaozhao --> 私钥文件
# xiaozhao.pub --> 公钥文件
(二)王教授设置远程仓库
王教授作为管理者,需要先在 Github 平台上创建仓库,并将团队成员的Github账号添加到该仓库中。操作步骤如下:
在 Github 上创建远程仓库(见图1) 在仓库中添加课题团队成员的账号(见图2) 将仓库的地址告知课题组成员(见图3)
(三)小赵克隆远程仓库并开始材料收集工作
小赵收到了王教授的邮件,邮件中含有远程仓库相关信息,小赵用如下命令,克隆了远程仓库。
注意,下方代码,windows用户需要启动 Git Bash Here 运行,mac / linux 用户需要启动终端,后文不再赘述。
# 进入指定的目录
cd /Users/xiaozhao
# 克隆远程仓库到指定目录
git clone git@github.com:TestMailDrWang/Project.git
# clone 成功后出现一个文件夹:/Users/xiaozhao/Project
# 查看仓库的内容
ls /Users/xiaozhao/Project
# 现在只有一个 README.md 文件
# 查看文件内容
cd /Users/xiaozhao/Project
cat README.md
### RADME.md 中是王教授创建项目时填写的内容。
# Project
# wang,lee,zhao
我们也可以在系统中查看文件,如下图所示:
💡 需要注意,上期推文(数据治理 | 科研团队协同工作新神器!Git远程仓库的使用)中,我们先在本地创建了空的文件夹,再用 git init 命令将文件夹初始化为仓库,最后用 git remote add 命令,才算是把本地仓库和远程仓库“绑定”,而本期推文我们使用 git clone 命令就可以完成之前的操作,更为快捷。
小赵接下来开始收集材料了,为了保持仓库结构的整洁,他为自己的工作创建了一些工作目录,并添加了一些文档和数据:
# 下面这些代码模拟了小赵的工作流程
cd /Users/xiaozhao/Project/
mkdir 文献收集
mkdir 会议记录
mkdir 数据收集
touch 文献收集/文献1.pdf
touch 文献收集/文献2.pdf
touch 会议记录/2023-01-12-会议记录.txt
touch 会议记录/2023-01-14-会议记录.txt
touch 数据收集/2020统计数据.csv
小赵做完一段时间工作后,需要把材料提交到远程仓库,给小李使用。提交的命令如下:
# 添加到本地版本库
git add .
git commit -m "添加了数据和会议记录等资料"
# 提交到远程代码库
git push
此时,远程代码库可以看到小赵的提交资料。
(四)小李克隆仓库并开展工作
小李进行了如下操作:
# 进入指定的目录
cd /Users/xiaolee
# 克隆远程仓库到指定目录
git clone git@github.com:TestMailDrWang/Project.git
此时,clone 代码仓库,会把小赵的工作下载到小李的电脑上。
下面的代码,用于模拟小李的工作
cd /Users/xiaolee/Project/
mkdir 计量模型
mkdir 论文写作
touch 计量模型/数据处理.py
touch 计量模型/数据统计.do
touch 计量模型/回归模型.do
touch 计量模型/模型检验.do
touch 论文写作/课题论文.docx
小李完成一个阶段的工作后,也要把相关文档提交到远程仓库。但是,小李工作过程中,小赵又提交了一些材料,则小李直接使用 git push 会报错,因为远程代码库有新的文档,为了保持数据一致,小李需要把远程仓库最新数据同步到本地,然后再 push 自己的文档。
下面我们用代码模拟上述报错和解决问题的过程:
小赵在小李工作时,又提交了一些数据。注意,此时小李还未提交材料到远程仓库:
# 小赵补充材料
cd /Users/xiaozhao/Project/
touch 数据收集/2019统计数据.csv
touch 数据收集/2022统计数据.csv
# 提交到远程仓库
git add .
git commit -m "材料补充"
git push
小李完成工作后也要提交:
git add .
git commit -m "添加计量模型和论文初稿"
git push
此时 git 会报如下错误:
To github.com:TestMailDrWang/Project.git
! [rejected] main -> main (fetch first)
error: failed to push some refs to 'github.com:TestMailDrWang/Project.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
这个报错的意思是:有其他人提交了数据到远程仓库,而这些数据在本地仓库中没有,需要用 git pull 拉取最新的数据到本地。
小李可以这样解决报错:
# 将远程仓库最新数据同步到本地,防止报错
git pull
# 将自己的工作提交到远程仓库
git add .
git commit -m "添加计量模型和论文初稿"
git push
此时远程仓库可以看到小李的工作文档。
(五)王教授管理课题进度
王教授可以在Github的页面看到团队成员的提交记录和提交内容。
也可以将远程仓库pull到本地,进行管理和修改。
# 王教授拉取远程代码仓库数据
cd /Users/wang/Project
git pull
同样,王教授可以修改文档内容,并提交到远程仓库,小赵和小李只需要重复之前的步骤即可。
Part3本文总结
本期推文,我们学习了如何使用 Git 进行团队协同工作,读者需要熟练掌握以下几个知识点:
使用 git clone 命令,克隆远程仓库可以简化本地仓库和远程仓库“绑定”的流程 使用 git push 命令,将本地数据同步到远程仓库 当出现远程仓库和本地仓库数据不一致时,使用 git pull 拉取最新的数据,然后再进行提交 Github 等平台可以看到成员每次提交的记录可有效管理项目进度,还有项目资料定期备份功能,防止数据被误删
希望大家好好练习和使用 Git ,我们下期再见 !
星标⭐我们不迷路!想要文章及时到,文末“在看”少不了!
点击搜索你感兴趣的内容吧
往期推荐
数据Seminar
这里是大数据、分析技术与学术研究的三叉路口
文 | 《社科领域大数据治理实务手册》
欢迎扫描👇二维码添加关注