问题
写第二个lab的时候发现代码对不上,后来知道是因为分枝不对。博客搜了几下,没找到想要的,就自己弄了,弄成后写下这篇博客来分享下。
解决
我用的方式是本地连接我的GitHub,然后拉个docker镜像作为环境,再把GitHub的代码git clone里面运行。
在我的docker里面用命令发现了这些分支,当然你用本地clone下的官网代码也能看到,我只是在docker里面发现的。
root@2b18266c7abf:~/xv6-labs-2021# git branch -a
* util
remotes/origin/cow
remotes/origin/fs
remotes/origin/lock
remotes/origin/mmap
remotes/origin/net
remotes/origin/pgtbl
remotes/origin/riscv
remotes/origin/syscall
remotes/origin/thread
remotes/origin/traps
remotes/origin/util
在我的本地把这个代码部分下载下来。然后使用git checkout把这个lab2的部分代码下载下来。
➜ ~ git:(master) ✗ git clone git://g.csail.mit.edu/xv6-labs-2021
正克隆到 'xv6-labs-2021'...
remote: Enumerating objects: 7051, done.
remote: Counting objects: 100% (7051/7051), done.
remote: Compressing objects: 100% (3423/3423), done.
remote: Total 7051 (delta 3702), reused 6830 (delta 3600)
接收对象中: 100% (7051/7051), 17.20 MiB | 2.26 MiB/s, 完成.
处理 delta 中: 100% (3702/3702), 完成.
warning: 远程 HEAD 指向一个不存在的引用,无法检出。
➜ ~ git:(master) ✗ cd xv6-labs-2021
➜ xv6-labs-2021 git:(master) ✗ git checkout syscall
分支 'syscall' 设置为跟踪 'origin/syscall'。
切换到一个新分支 'syscall'
因为我是用的clion来写的代码,所以,首先在我的Github上面建好对应的仓库,然后把空仓库clone到我的clionproject里面。
➜ ~ git:(master) ✗ cd CLionProjects
➜ CLionProjects git:(master) ✗ ls
learnStack xv6 xv6-labs-2021
➜ CLionProjects git:(master) ✗ git clone https://github.com/callFlower/xv6-lab2.git
正克隆到 'xv6-lab2'...
warning: 您似乎克隆了一个空仓库。
然后把之前lab2分支的代码copy过来,再 commit就大功告成了。