美文网首页
Git多分支管理及多ssh-key配置

Git多分支管理及多ssh-key配置

作者: Akelio | 来源:发表于2017-02-21 17:18 被阅读0次

    问题1:Git多分支管理及远程配置

    当从服务器中clone下来一个项目后,默认会有本地分支master以及服务器的所有远程分支。其中本地分支master与远程origin/master自动关联。而远程origin/dev这类分支则不存在关联。

    通常个人仅做dev上的更改,首先本地创建分支git branch dev,并切换至新的本地分支git checkout dev。然后按一般的操作进行本地的开发之后。通过git push origin dev上传到远程dev分支上。

    当其他成员在远程dev分支上进行修改,直接在本地dev分支中git pull时会提示当前分支没有关联远程分支。因此通过git branch --set-upstream-to=origin/<branch> dev使得本地dev与远程相应的分支关联。此时在本地dev分支中执行git status则显示up-to-date with origin/dev

    此时执行git remote show origin显示

    $ git remote show origin
    * remote origin
      Fetch URL: git@git.coding.net:xxxx.git
      Push  URL: git@git.coding.net:xxxx.git
      HEAD branch: master
      Remote branches:
        dev    tracked
        master tracked
      Local branches configured for 'git pull':
        dev    merges with remote dev
        master merges with remote master
      Local refs configured for 'git push':
        dev    pushes to dev    (up to date)
        master pushes to master (up to date)
    
    

    问题2:多个ssh-key配置,从https切换到ssh

    由于项目是用https方式clone下来,如果要切换到ssh则需要执行git remote set-url origin <url>切换到相应的ssh地址。

    由于对不同账号有多个key存在,通过ssh-add进行添加。详细参考此处。这种方法的不好之处就在于每次都要重新运行ssh-agent

    第二种方法就是在~/.ssh/config中配置相关地址映射,不然默认只会用id_rsa来做认证。

    Host github.com
        HostName github.com
        User yourusername
        IdentityFile ~/.ssh/id_rsa
    
    Host git.coding.net
        HostName git.coding.net
        PreferredAuthentications publickey
        User yourusername
        IdentityFile ~/.ssh/coding_rsa
    

    特别注意,当Host之后的域名修改之后,则会强制使用新的Host,比如git.coding.net改成coding,则要确保相应的git里的域名也都是对应的是coding,不然就会使得这个映射失效。

    相关文章

      网友评论

          本文标题:Git多分支管理及多ssh-key配置

          本文链接:https://www.haomeiwen.com/subject/hgwwittx.html