Git tutorial for DLCO¶
在此简述如何在实验平台中配置网络连接,并与 NJU Git 同步。
连接网络¶
实验平台没有开 DHCP,也没有配置 DNS,需要我们自己配置。
打开 /etc/resolv.conf 然后写入校内 DNS 即可:
vim /etc/resolv.conf
nameserver 10.12.254.3
nameserver 10.28.254.3
或者也可以使用 echo
echo nameserver 10.12.254.3 >> /etc/resolv.conf
echo nameserver 10.28.254.3 >> /etc/resolv.conf
然后我们就能连上校园网了。如果需要访问校外网,只需要在浏览器中打开 p.nju.edu.cn 然后登陆就行。
配置 Git¶
这里为了方便,我们使用 NJU Git
首先在 NJU Git 创建一个仓库,假设名字叫 dlco。我们后续的操作都会在这个仓库进行。
接下来我建议通过 SSH 进行提交,这样会较为方便。
配置 SSH Key¶
在实验平台的终端输入 ssh-keygen,一路回车,然后把自己的公钥复制出来:
cat /etc/.ssh/id_rsa.pub
会得到一串公钥,大概像 id_rsa xxxx...xxxx root@coder,通过平台的复制功能拿出来,然后在这里添加 SSH Key。
配置 Git 仓库¶
回到我们的作业目录
cd /data/workspace/myshixun
添加远程仓库(这里的 nju 可以换成其他你想要的名字,your-username 记得填你自己的)
git remote add nju git@git.nju.edu.cn:your-username/dlco.git
注意到这里如果你直接 git push nju master 会因为本地没有完整的提交历史,并且你也无法 git fetch,所以我们直接提交是不行的,可以使用替代方法。
先创建一个新的分支
git checkout --orphan nju
然后进行第一次提交
git add .
git commit -m "Sync"
这个分支的提交历史就是完整的了,我们可以直接提交到 NJU Git 上面
git push nju sync:sync
接下来建议切回 master 分支,因为当你在非 master 分支进行评测时,会导致仓库出现异常
git checkout master
如果需要从 NJU Git 同步文件
git pull nju sync:sync
git checkout sync -- .
git add .
git commit -m "Sync"
如果需要将新的文件提交到 NJU Git
git checkout sync
git checkout master -- .
git add .
git commit -m "Sync"
git push nju sync:sync
Warning
进行所有修改后,一定要切回 master 分支,否则评测时仓库可能出现异常
git checkout master
如果你的平台是 EduCoder (头歌)¶
如果在头歌上的话,会简单很多
cd /data/workspace/myshixun
git remote -v
然后你就得到了仓库地址,push pull 时用头歌的账号密码登录即可。
Warning
进行所有修改后,一定要切回 master 分支,否则评测时仓库可能出现异常
git checkout master