git服务器上已经建立的项目列表和本地目录,ssh端口修改

由于学校控制22端口,所以修改了ssh端口为7712(因此,直接访问机器的命令行需要改为:ssh git.systemsci.org -p 7712)。ssh服务器端修改端口号的办法是:修改/etc/ssh/sshd_config文件,在Port 22下面,添加Port 7712(注意不要去掉22端口,万一去掉7712端口有没有配置好,那你就登录不了这个机器了)。同时在/etc/ssh/ssh_config里面同样的地方也添加Port 7712。

在客户端可以在~/.ssh/下新建一个config文件(如果你是图形界面,则直接修改ssh图形客户端配置就可以),文件内容为:

Host YOUR_HOST
User YOUR_USER_NAME
Port YOUR_NEW_PORT

这一步对于git找到相应的端口非常重要。

这个文档的以下部分记录git服务器,git.systemsci.org上面管理的项目。关于git安装和使用见下文。
如果你已经通过~/.ssh/下新建一个config文件来识别端口号,则下面的命令中的端口号都可以去掉。如果你没有做这一步,则下面的命令中都加上端口号。当然如果是默认22的配置,则不用添加端口号。

  1. IO文档
    1. 服务器端在/home/git/IO.git
    2. 本地保存在Research/Input-Output/下面,跟踪对象是所有的.tex文件。

详细安装过程和使用方法如下:

  1. 在服务器端安装git: sudo apt-get install git-core,并添加git用户(sudo adduser git,注意密码),普通用户不用做这一步
  2. 在服务器端建立一个项目:mkdir IO.git。在这里,整个git目录只用于存储项目。因此,所有的项目直接放在~/git/下面。如果项目还没有在上面的列表上,普通用户需要完成这一步
  3. 在项目目录下面,初始化项目目录结构:git init –bare。这时候指有目录结构,什么具体内容都还没有呢。
  4. 回到本地机器准备加入内容
    1. 生成和上传一个ssh公钥到服务器上(参考如下帖子,需要git用户密码,请跟我联系):

      1. ssh-keygen -t rsa
      2. cat ~/.ssh/id_rsa.pub | ssh git@git.systemsci.org "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
      #这部分完成的事情首先是在本地自己的机器上产生一个id_rsa.pub公钥,然后把这个公钥上传到远程服务器,并且重命名为authorized_keys.

      完成这两步之后试试是否能够免密码访问服务器了。
    2. 已经存在的IO项目目录:把这个目录变成存储项目内容的本地目录(git init )。然后把远程项目拉过来同步到本地目录(git remote add origin ssh://git@git.systemsci.org/home/git/IO.git, git pull origin master)。接着把本地目录的内容加入到需要同步的列表(git add., git commit -m “massage” -a),然后把本地目录的内容推送到远程(git push origin master)
    3. 或者如果还没有这个项目的话,到预期存储IO项目的上一级目录(运行完成下面的目录会产生一个名字叫做IO的子目录)。然后运行:git clone git@git.systemsci.org:/home/git/IO.git,就会把整个服务器上的这个项目的内容完整地复制下来。
    4. 在本机这个项目目录下面编辑文档,并且用git add, commit, push之类的命令同步到服务器上。也可以安装图形客户端。
  5. 注意:最好只把文本文件当作git管理的对象,否则,由于要检查和跟踪变化,git会非常慢