Mit6.828 Lab资源的获取+合并修改并上传到远端仓库

Mit6.828 Lab资源的获取+合并修改并上传到远端仓库

摘要:mit6.828的git仓库配置

0x01 写在前面

本人对git其实并没有那么熟悉(惭愧啊都是上完大二的学生了==,并且基本上没有使用过command line下的git,故在这块踩了点坑。为了使后来者能够更为愉快地写Mit6.828这个优秀的Lab,因此本人在Lab资源获取以及如何合并修改并且上传到自己的github仓库这块单独开一个博客来进行讲解。

0x02 前置准备

我们从头开始讲起,首先我们需要从远端仓库获取我们的代码。这是在Lab1所需要做的事情。

1
2
3
4
mkdir ~/6.828
cd ~/6.828
git clone https://pdos.csail.mit.edu/6.828/2018/jos.git lab
cd lab

而后在我们完成了一个lab后(或者lab中一个小的exercise,我们可以commit我们的代码,使用git commit这条指令。

1
git commit -am 'my solution for lab1 exercise 9'

这条指令将我们的代码提交到本地的版本库,也就是我们一开始git clone下来的那个库,am是我们自己标识出来的完成进度。而后,如果我们结束了本次lab,想要开始下一次lab,一定要将我们本次完成的结果commit,否则会出现

1
error: Your local changes to the following files would be overwritten by checkout:

这样的报错,在commit完成后。键入如下命令

1
git checkout -b labN yourreponame/labN

新建一个labN分支作为第N次lab,而后

1
git merge lab[N-1]

用以merge之前的lab。

而后,如要要上传到远端仓库,需要键入如下命令

1
git push localreponame [master]

第一次上传代码应该带上master,本质上是你的branch名字。

0x03 具体操作

我们要实现的目标如下:

1)可以从官方的远端仓库获取我们所需的lab的资源;

2)可以将代码上传到我们的github上。

配置我们的git远端仓库

我们需要一个github仓库,如果不会操作的朋友去注册一个github。可以参照这篇文章 跟着做到2.1完成仓库创建得到https方式的url就行。

首先接着上面的,我们其实已经从远端仓库https://pdos.csail.mit.edu/6.828/2018/jos.git 拉取了我们所需要的源码,那么我们就先以此为基础。我们将现在这个仓库的远端仓库地址改为我们自己的,也就是上面申请好的。修改方式参照这篇文章

而后我们需要修改我们的分支名(其实不修改也可以,一开始我们的分支名为lab1,我们将其修改为master。

1
git branch -m lab1 master

再后,我们已经可以上传我们lab1(现在是master)的代码了,通过以下指令:

1
git push -u origin master

然后会叫你输入用户名和密码,输入即可上传成功。

配置实验资源的git仓库

现在来配置获取实验资源的git仓库,思路很简单,直接在本地增加一个名为Mit6.828的url地址为https://pdos.csail.mit.edu/6.828/2018/jos.git仓库即可。

1
git remote add Mit6.828 https://pdos.csail.mit.edu/6.828/2018/jos.git

而后抓取该仓库中的数据到本地

1
2
3
4
5
6
7
8
9
git fetch Mit6.828
# 运行结果
From https://pdos.csail.mit.edu/6.828/2018/jos
* [new branch] lab1 -> Mit6.828/lab1
* [new branch] lab2 -> Mit6.828/lab2
* [new branch] lab3 -> Mit6.828/lab3
* [new branch] lab4 -> Mit6.828/lab4
* [new branch] lab5 -> Mit6.828/lab5
* [new branch] lab6 -> Mit6.828/lab6

现在就可以在origin创建我们想要做的lab的分支了,比方说lab2。

1
git checkout -b lab2 MIT6.828/lab2

最后merge一下lab1(master)中的改动即可。

1
git merge master

0x04 写在后面

大概是这么个情况,我感觉整个流程下来还是简单的,如果有问题欢迎通过邮件联系我。


评论