Skip to content

使用子模块

在Git官网上,有针对子模块的专门说明,详见Git Submodules

添加子模块

比如,添加一个子模块DbConnector:

bash
$ git submodule add https://github.com/chaconinc/DbConnector

克隆带子模块的仓库

bash
$ git clone https://github.com/chaconinc/MainProject
$ git submodule init
$ git submodule update

以上三个命令也可以用下面引命令代替:

bash
$ git clone --recursive https://github.com/chaconinc/MainProject

删除子模块

采用以下三个步骤:详见Stack Overflow

bash
$ git submodule deinit -f -- a/submodule
$ rm -rf .git/modules/a/submodule
$ git rm -f a/submodule

使用多个账号

github在8月13日更新以后,原先的ssh认证和https认证都失败了,只能添加token认证。具体参见git添加token认证。但是,我是在2024年1月20日才开始遇到此问题,姑且信以为真吧。

--------以下方法已经失效--------

如何在同一台计算机上使用多个Github账号?要点如下,详细方法见Stack Overflow

步骤一:为first和second两个账号生成两个RSA密钥,名字分别为git_first和git_second。当然,这里的名字只是举例,你的名字肯定不一样。如果要用更多的账号,就需生成更多的密钥。

bash
$ ssh-keygen -t rsa -C "email-address1" # name it git_first when prompted
$ ssh-keygen -t rsa -C "email-address2" # name it git_second when prompted

生成密钥后,将公钥里的内容,在对应的Github账号中设置好。

步骤二:创建config文件

bash
$ cd ~/.ssh
$ touch config
$ vim config

config文件的内容如下。其中,第一个确定了默认的Host,后面的必须另外命名。

Host github.com
  HostName github.com
  User git
  IdentityFile ~/.ssh/git_first
Host git_second
  HostName github.com
  User git
  IdentityFile ~/.ssh/git_second

步骤三、Github仓库repo1和repo2设置要使用的密钥。注意,@之后跟随的Host名称就是上面的config中设置的。

bash
$ git remote add origin git@github.com:first/repo1.git
$ git remote add origin git@git_second:second/repo2.git

同步上游仓库的更新

bash
$ cd your/repo
$ git remote add upstream http://github.com/your-account/upstream-repo.git
$ git fetch upstream
$ git pull origin master