zoukankan      html  css  js  c++  java
  • git 在一台机器上配置多个账户

    前提:
    必须知道怎样配置git账户,请參考git官方教程:https://help.github.com/articles/generating-ssh-keys
    这个教程能教你怎样生成ssh-key,以及怎样加入ssh-key。
    补充一点。怎样设置user.name和user.email。命令例如以下:
    1)设置局部的user.name和user.email
    git config user.name “xxxxxx”
    git config user.email “xxx@xxx.com”
    2) 设置全局的user.name和user.email
    git config --gloable user.name “xxxxxx”
    git config –gloable user.email “”


    第一步:

    建一个新的github账户。名字为testaccount,假设你已经有了。跳过此步(注:你之前已经有了一个老的账户了,假设没有,请看“前提”先来一个账户)


    第二步:
    假设自己会生成和配置ssh-key。那么要配其它账户首先要在生成一个ssh-key。当然新的ssh-key名称要和之前的有所差别,默认的private key 名称为id_rsa。新的key要换个名称。比方id_rsa2。这样生成一套key的名称分别为id_rsa2和id_rsa2.pub。而默认的文件为id_rsa和id_rsa.pub

    在github上建一个新的repository。当然是基于你的第二个账户testaccount的。比如名称为test


    第三步:

    git clone下来


    第四步:
    然后要在.ssh文件夹下配置一下config文件(假设没有,创建它),样例例如以下:
    # Default account
    Host github.com
    Hostname github.com
    User git
    IdentityFile ~/.ssh/id_rsa


    # New account
    Host github2.com
    Hostname github.com
    User git
    IdentityFile ~/.ssh/id_rsa2


    此时发现,这个配置看不懂啊,没关系,下边你能够使用命令,在一个test文件夹下运行git config -l 命令查看配置。例如以下所看到的:
    core.symlinks=false
    core.autocrlf=false
    color.diff=auto
    color.status=auto
    color.branch=auto
    color.interactive=true
    pack.packsizelimit=2g
    help.format=html
    http.sslcainfo=/bin/curl-ca-bundle.crt
    sendemail.smtpserver=/bin/msmtp.exe
    diff.astextplain.textconv=astextplain
    rebase.autosquash=true
    mergetool.prompt=false
    core.repositoryformatversion=0
    core.filemode=false
    core.bare=false
    core.logallrefupdates=true
    core.symlinks=false
    core.ignorecase=true
    core.hidedotfiles=dotGitOnly
    remote.origin.url=git@github.com:testaccount/test.git
    remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
    branch.master.remote=origin
    branch.master.merge=refs/heads/master
    user.name= xxxxxx
    user.email=xxx@xxx.com


    注意这一行remote.origin.url=git@github.com:testaccount/test.git,这里的 github.com表示config文件中的hostname,事实上他并非hostname而是一个别名,这样解释:
    git@别名: testaccount/test.git解析的路径为 git@github.com:testaccount/test.git而我配的default account的host和hostname刚好一样,假设仅仅有一个账户的时候,它并不表示别名而是路径。此时我们不须要配置config文件。我们设置config文件的目的是由于我们有两套key,分别用在两个repository,而我们须要分别指向这两个key。简单来说。我们是要通过host来找到key。即通过host映射到IdentityFile。


    此时打开test文件夹下.get文件夹(隐藏文件夹)的config文件,内容例如以下:
    [core]
    repositoryformatversion = 0
    filemode = false
    bare = false
    logallrefupdates = true
    symlinks = false
    ignorecase = true
    hideDotFiles = dotGitOnly
    [remote "origin"]
    url = git@github.com:testaccount/test.git
    fetch = +refs/heads/*:refs/remotes/origin/*
    [branch "master"]
    remote = origin
    merge = refs/heads/master
    [user]
    name = testaccount
    email = xxx@xxx.com


    我们仅仅需把 url = git@github.com:testaccount/test.git改为 url = git@github2.com:testaccount/test.git,即使用了new account的host来配置。映射到了新的IdentityFile新的key,就可以保存文件再使用命令git config -l 查看配置例如以下:
    core.symlinks=false
    core.autocrlf=false
    color.diff=auto
    color.status=auto
    color.branch=auto
    color.interactive=true
    pack.packsizelimit=2g
    help.format=html
    http.sslcainfo=/bin/curl-ca-bundle.crt
    sendemail.smtpserver=/bin/msmtp.exe
    diff.astextplain.textconv=astextplain
    rebase.autosquash=true
    mergetool.prompt=false
    core.repositoryformatversion=0
    core.filemode=false
    core.bare=false
    core.logallrefupdates=true
    core.symlinks=false
    core.ignorecase=true
    core.hidedotfiles=dotGitOnly
    remote.origin.url=git@github2.com:testaccount/test.git
    remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
    branch.master.remote=origin
    branch.master.merge=refs/heads/master
    user.name= testaccount
    user.email=xxx@xxx.com


    大功告成。你能够push代码了

  • 相关阅读:
    各种解码网站
    带你走进php大马的结构模块编写之路
    如何优雅的调戏XSS
    静态分析第三发 so文件分析(小黄人快跑)
    C# Window编程随记——ClickOnce程序部署
    sklearn特征选择和分类模型
    实现Activity的滑动返回效果
    JSP自己定义标签继承哪个类
    [LeetCode][Java] Unique Paths II
    关于腾讯微博之死,离职员工所了解的真相
  • 原文地址:https://www.cnblogs.com/wzzkaifa/p/6913917.html
Copyright © 2011-2022 走看看