如何用github记录mit6s081-2020-labs学习过程

发布于:2025-08-19 ⋅ 阅读:(17) ⋅ 点赞:(0)

如何用github记录mit6s081-2020-labs学习过程

这个课程中包含了许多分支,每次lab都在不同的分支,我们首先在github网站上面新建一个仓库,不要勾选add readme,不然会创建一个默认的master分支。

然后把6s081的官方代码git clone到本地

git clone git://g.csail.mit.edu/xv6-labs-2020

可用查看一下git的配置情况,使用

cat .git/config
~/projects/tmp/xv6-labs-2020$ cat .git/config
[core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
[remote "origin"]
        url = git://g.csail.mit.edu/xv6-labs-2020
        fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
        remote = origin
        merge = refs/heads/master

现在我们想要把本地代码上传到github仓库中,使用git remote add <分支名> <远程仓库地址>,这是是一个 Git 命令,用来给本地仓库添加一个新的远程仓库地址。仓库地址最好使用ssh地址。

 git remote add util git@github.com:Yujie-Ling/mit6s081.git

然后在用cat .git/config,可以看到

~/projects/tmp/xv6-labs-2020$ cat .git/config
[core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
[remote "origin"]
        url = git://g.csail.mit.edu/xv6-labs-2020
        fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
        remote = origin
        merge = refs/heads/master
[remote "util"]
        url = git@github.com:Yujie-Ling/mit6s081.git
        fetch = +refs/heads/*:refs/remotes/util/*

现在就有一个远程分支 “util”;

通过git branch -a可以查看所有的分支

lyj@LAPTOP-PSHBU979:~/projects/xv6-labs-2020$ git branch -a
  master
* util
  remotes/origin/HEAD -> origin/master
  remotes/origin/cow
  remotes/origin/fs
  remotes/origin/lazy
  remotes/origin/lock
  remotes/origin/master
  remotes/origin/mmap
  remotes/origin/net
  remotes/origin/pgtbl
  remotes/origin/riscv
  remotes/origin/syscall
  remotes/origin/thread
  remotes/origin/traps
  remotes/origin/util
  remotes/util/util

其中带*的分支表示目前所在的分支。

每次实验时,先切换到对应的本地分支,比如util分支,就使用git checkout util

使用cat .git/config

lyj@LAPTOP-PSHBU979:~/projects/xv6-labs-2020$ cat .git/config
[core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
[remote "origin"]
        url = git://g.csail.mit.edu/xv6-labs-2020
        fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
        remote = origin
        merge = refs/heads/master
[branch "util"]
        remote = origin
        merge = refs/heads/util
        vscode-merge-base = origin/util
[remote "util"]
        url = git@github.com:Yujie-Ling/mit6s081.git
        fetch = +refs/heads/*:refs/remotes/util/*

可以看到现在有两个分支,可以理解为第一个util分支为本地的,第二个util为远程仓库的util分支,我们在本地的util分支上写好代码以后,通过

git add .
git commit -m "自己想说的话"
git push  <本地分支名> <远程分支名>

这三条命令就能把本地的util分支的内容传到远程仓库的util分支上了。

具体使用是:

git add .
git commit -m "lab1 util"
git push  util util

保险期间可以去github仓库看一下是否推送上去了。


网站公告

今日签到

点亮在社区的每一天
去签到