有时候,对于高校的研究生,他们需要或者不得不使用学校的服务器。在这种条件下,对学生而言,往往是一个人有一个独立账号;但是也有一些例外情况,比如某一位精明能干的博士生手下有好多本科生。这样一来,情况就不一样了,因为本科生,特别是做交流的本科生,往往是没有服务器账号的。如此一来,他们就只能好几个人使用一个服务器账号了。绝大多数条件下,这是没有问题的,但是如果希望使用 git 和 GitHub 来管理和提交自己的代码,这要怎么办?也就是说,在一个设备的一个账号下,多个研究人员要怎么合理的使用自己的git和GitHub?🎈

可惜的是,这样的问题或许太过小众,这样的工况太过极端;以至于鲜有人仔细考虑。有些时候,为了省事同学们甚至是直接使用ssh在本地机器和学校服务器之间传递代码。为了解决这个问题,在博主掉了 114514 根头发之前>﹏<,写好了这个帖子,以飨读者。

创建个人工作目录

这里假设同学们已经成功登录了服务器

首先在共享账户下创建您的个人工作目录,这里的共享账号往往就是用户文件夹,但是有时候是指定好的一个文件夹,这个根据不同学校和实验室的要求各有不同。

1
2
mkdir ./myname_workspace
cd ./myname_workspace

myname替换为您的标识符,比如我就可以使用jack作为自己的标识符。

配置Git

在您的工作目录下创建Git配置文件:

1
2
# 注意,这时候应该在 myname_workspace 中
touch .gitconfig_myname

编辑此文件,添加您的Git配置:

1
2
3
[user]
name = Your GitHub Name
email = your.GitHub@mail.com

设置SSH密钥

生成SSH密钥对

1
2
3
# 注意,这时候应该在 myname_workspace 中
mkdir .ssh_myname
ssh-keygen -t rsa -C "your.GitHub@mail.com" -f .ssh_myname/id_rsa_myname

配置SSH

创建或编辑.ssh_myname/config文件:

1
2
3
4
Host github.com-myname
HostName github.com
User git
IdentityFile .ssh_myname/id_rsa_myname

添加公钥到GitHub

查看并复制公钥内容:

1
2
# 注意,这时候应该在 myname_workspace 中
cat .ssh_myname/id_rsa_myname.pub

将公钥添加到您的GitHub账户设置中。

更新代理

添加SSH密钥到SSH代理:

1
2
eval $(ssh-agent -s)  # 确认代理在正常的工作
ssh-add .ssh_myname/id_rsa_myname # 临时添加自己的密钥

开始工作

在更新代理结束后,一般来说就可以正常的工作了,此时 git 的操作也和平时没有区别了🎉。可以 clone 一个私人文件测试是不是成功。如果发生意外,可以再次更新代理后尝试。

提示

请注意这里的文件的路径,都是在自己的工作目录下进行操作,不要不小心跑到了共享账户,一般就是 home,里面了🤣。