使用 git 在不同存储库管理服务(bitbucket、GitLab)中的项目之间切换

Switching between projects in different Repository Management Services (bitbucket, GitLab) using git

我已经有一个关于 GitLab 的项目,并且最近我被分配到关于 bitbucket 的另一个项目。

我已经明白,当我在一个项目上工作时,我需要 pushpulladdcommit 等,然后我需要确保我我已经在该项目的目录中,但我还需要注意哪些其他因素?我想避免任何冲突或尴尬的情况,比如将代码提交到错误的项目,所以也许我需要在不同的 repos 之间切换。

不久前一位前同事在我的 .bash_profile 文件中进行了配置。以下命令适用于我不再从事的项目,所以我不再使用它,但它仍然存在于我的 .bash_profile 文件中:

set_companyX_git(){
  git config --global http.sslcertpasswordprotected true
  git config --global http.sslCert /Users/my_mbp/Software/ssl_project/keystore.p12
}

unset_companyX_git(){
  git config --unset --global http.sslcertpasswordprotected
  git config --unset --global http.sslCert
}

我想在我的 .bash_profile 中再次添加类似的内容,但我不确定这些命令的正确性。希望 git 专业人士可以让我走上正确的道路。

由于我在 Gitlab 上的现有项目,我已经有了一个 ssh 密钥,但是这个密钥必须对每个 repo 或每个存储库管理服务都是单独的,或者只要我有一个密钥就没有关系?

这里有一堆问题,但我会按照他们被问到的顺序尽可能地回答他们。

  1. what other factors do I need to be aware of? - 您的提交都将在您的全局配置中指定作者详细信息(姓名和电子邮件地址)。如果这是可以接受的,那就太好了;如果这可能会导致问题,那么您可能需要在每个需要与全局配置不同的回购中 运行 git config user.name "Your Name for This Repo"git config user.email "foo@bar.baz"
  2. I'd like to add something similar in my .bash_profile again, but I'm not sure how correct these commands are. 只有当您必须为 TLS 密钥提供密码时才需要这些。如果您不在本地托管存储库,那么您可能不需要它们。
  3. must this key be individual to every repo, or to every Repository Management Services, or does it not matter so long as I have a key? 只要您有密钥就没关系,尽管每个远程主机都会将该密钥限制为一个用户帐户。 (换句话说,如果你在 GitLab 上有 UserA,在 Bitbucket 上有 UserB,那么你可以对两者使用相同的密钥——但如果你在 GitLab 上同时有 UserA 和 UserB,那么他们将需要单独的密钥。)