MIT6.828学习之获取MIT6.828远端仓库资源

每做新Lab可能都会要新加一些文件然后把自己之前实验的lab合并进来,那么怎么把文件从MIT6.828的远端仓库里fetch下来,并与之前的合并,就需要这样做:
由于之前为了把实验push到自己的远端仓库,不小心把MIT6.828那个给删了,现在得重新加上去,不过远程库的名字不能再使用origin
git remote add MIT6.828 https://pdos.csail.mit.edu/6.828/2018/jos.git
查看一下添加结果
在这里插入图片描述
很nice嘛,如果想删掉远程库的话,可以用git remote rm MIT6.828,不过我才不删呢
然后使用git checkout -b lab2 MIT6.828/lab2失败了。。。
在这里插入图片描述
这个时候应该git fetch MIT6.828 to make sure MIT6.828 is fetched:
在这里插入图片描述
然后再使用git checkout -b lab2 MIT6.828/lab2,这次总可以了把,又fatal。。。
在这里插入图片描述
原来我之前乱搞已经添加了一个lab2的分支,删掉再来:

git checkout master
git branch -D lab2
git checkout -b lab2 MIT6.828/lab2

在这里插入图片描述
这样就ok了,再git merge master,把之前的lab1的修改合并过来
在这里插入图片描述
可以看到和Lab2要求的一样,多出了5个文件,真是不能捉急呀
在这里插入图片描述

Lab开始

第一步,git fetch MIT6.828确保可以获取资源

git fetch MIT6.828

第二步git pull,让MIT6.828远端库更新本地库。

git pull
结果:Already up-to-date.

第三步,新建一个分支,并且从MIT6.828获取对应的LabN资源到该分支。一般会报错,让你重新commit一次,就算你之前的版本已经commit了,并且handin到该上传的网页上。

git checkout -b labN MIT6.828/labN  //N改成你要fetch的那个Lab

结果:
error: Your local changes to the following files would be overwritten by checkout:
	kern/trap.c
Please, commit your changes or stash them before you can switch branches.
Aborting

查看一下新分支是否创建成功,果然没有。。。

git branch  //查看现有分支

结果:
  lab2
* lab3
  master

只好又commit了一次

git add .
git commit -am "commit before fetch Lab4"

结果:
[lab3 949ffa2] commit before fetch Lab4
 1 file changed, 3 insertions(+), 2 deletions(-)

然后再一次checkout创建新分支:

git checkout -b lab4 MIT6.828/lab4

结果:
Branch lab4 set up to track remote branch lab4 from MIT6.828.
Switched to a new branch 'lab4'

成功之后就会发现多了好多文件,就是Lab中提示的那些新文件

第四步,就是合并你之前的代码到这个新fetch下来的代码中,不出意外,又得commit一次才能merge成功

git merge lab[N-1] //lab[N-1]指代上一个分支,比如我现在在lab4分支,想要合并lab3分支,git merge lab3

结果:
error: Your local changes to the following files would be overwritten by merge:
	.dir-locals.el
	.gdbinit.tmpl
		...
	user/testbss.c
	user/user.ld
Please, commit your changes or stash them before you can merge.
Aborting
 git commit -am "commit before lab4 merge with lab3"
[lab4 306a352] commit before lab4 merge with lab3
 114 files changed, 0 insertions(+), 0 deletions(-)
git merge lab3

结果:
Auto-merging lib/printfmt.c
Auto-merging lib/libmain.c
Auto-merging kern/trapentry.S
Auto-merging kern/trap.c
CONFLICT (content): Merge conflict in kern/trap.c
Auto-merging kern/syscall.c
Auto-merging kern/pmap.c
CONFLICT (content): Merge conflict in kern/pmap.c
Auto-merging kern/monitor.c
Auto-merging kern/kdebug.c
Auto-merging kern/init.c
CONFLICT (content): Merge conflict in kern/init.c
Auto-merging kern/env.h
Auto-merging kern/env.c
CONFLICT (content): Merge conflict in kern/env.c
Auto-merging kern/console.c
Auto-merging inc/x86.h
Auto-merging inc/trap.h
CONFLICT (content): Merge conflict in inc/trap.h
Auto-merging inc/memlayout.h
Auto-merging conf/lab.mk
CONFLICT (content): Merge conflict in conf/lab.mk
Auto-merging GNUmakefile
Automatic merge failed; fix conflicts and then commit the result.

可以看到有很多不能自动合并的CONFLICT(冲突),这些就需要自己去找到那些文件,然后把===HEAD ===labN删掉就行,如下:
在这里插入图片描述
全部删完之后,能够make qemu就算全部完成了,可以正式开始做lab了

Lab结束

第一步,把所有的修改add一下
git add .     
//他会监控工作区的状态树,使用它会把工作时的所有变化提交到暂存区
//包括文件内容修改(modified)以及新文件(new),但不包括被删除的文件。
第二步 提交版本到本地仓库
git commit -am "Lab3 have done"
第三步 push到远端仓库
git remote -v //可以先查看下有哪些远端仓库
git push origin //开始push
	//接下来会提示输入用户名与密码
	Username for 'https://github.com': LoserAndSeeker
	Password for 'https://LoserAndSeeker@github.com': 

在这里插入图片描述
在这里插入图片描述
这样就可以了,打开GitHub查看一下:
在这里插入图片描述

第四步,完成了git操作,还得上传到MIT6.828指定的作业提交网站

先把你这个Lab的代码整个压缩,压缩名为labN-handin.tar.gz,然后在命令行中输入make handin,但我一般是失败的,所以我这样做只是为了得到那个网页网址( https://6828.scripts.mit.edu/2018/handin.py/ )而已。然后在Linux下用火狐打开,输入密钥(NORFTN9GQWFOTLNMWVX7J78D5XBKO427)后上传那个压缩文件即可

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MIT 6.828是一门关于xv6操作系统的课程,该课程提供了关于xv6操作系统的中文指南和实验室。 xv6是一个操作系统的教学版本,MIT 6.828课程提供了xv6全文的翻译成书供学习使用。 在课程中,还提供了一些实验,供学生进行实践和学习。 关于xv6的具体实现细节,根据引用中的内容,在user.h文件中可以找到函数的定义。需要在date.c的代码中补充相应的函数。 另外,引用中提供了一个样例过程,展示了一系列操作的执行顺序,包括fork、exec、open、close、write等。这个样例过程可以帮助理解xv6操作系统的运行机制。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [MIT-6.828:MIT 6.828操作系统课程](https://download.csdn.net/download/weixin_42139357/15728097)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [MIT6.828 Homework3 xv6 system calls](https://blog.csdn.net/qq_43012789/article/details/107746030)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值