threads / discuss / 49038

How to push using SSH and pull using HTTPS for all repos on GitHub?

Subject: How to push using SSH and pull using HTTPS for all repos on GitHub?

## tl;dr

4 messages between Aug 4, 2018 and Aug 5, 2018.

replies: 3people: 2as markdown or json

Jeffrey Walton· Aug 4, 2018, 23:16 UTC · lore

I'm having trouble setting up my ~/.gitconfig to push using SSH and pull using HTTPS for all repos on GitHub. The idea is, no passwords on pulls and only use the password for push.

I've got the first part of the equation using the following in my ~/.gitconfig (the ellipses are user info):

   $ cat ~/.gitconfig
   ...
   # Enforce SSH
   [url "ssh://git@github.com/"]
       insteadOf = https://github.com/
   [push]
      default = current

The above pushes and pulls using SSH. Pulls only need HTTPS so I tried adding the following which does not work as expected:

    [pull "https://github.com/"]
I've found several ways to break Git when trying to setup the HTTPS pull.
My question is, how do I setup the HTTPS pull in my ~/.gitconfig?
Thanks in advance.
Jonathan Nieder· Aug 5, 2018, 01:26 UTC · re: Jeffrey Walton · lore

Re: How to push using SSH and pull using HTTPS for all repos on GitHub?

Hi,
Jeffrey Walton wrote:
Show 12 quoted lines
> I'm having trouble setting up my ~/.gitconfig to push using SSH and
> pull using HTTPS for all repos on GitHub. The idea is, no passwords on
> pulls and only use the password for push.
>
> I've got the first part of the equation using the following in my
> ~/.gitconfig (the ellipses are user info):
>
>    $ cat ~/.gitconfig
>    ...
>    # Enforce SSH
>    [url "ssh://git@github.com/"]
>        insteadOf = https://github.com/
Does putting pushInsteadOf here work?

Thanks and hope that helps, Jonathan

Jeffrey Walton· Aug 5, 2018, 02:19 UTC · re: Jonathan Nieder · lore

Re: How to push using SSH and pull using HTTPS for all repos on GitHub?

On Sat, Aug 4, 2018 at 9:26 PM, Jonathan Nieder <jrnieder@gmail.com> wrote:
Show 18 quoted lines
> Hi,
>
> Jeffrey Walton wrote:
>
>> I'm having trouble setting up my ~/.gitconfig to push using SSH and
>> pull using HTTPS for all repos on GitHub. The idea is, no passwords on
>> pulls and only use the password for push.
>>
>> I've got the first part of the equation using the following in my
>> ~/.gitconfig (the ellipses are user info):
>>
>>    $ cat ~/.gitconfig
>>    ...
>>    # Enforce SSH
>>    [url "ssh://git@github.com/"]
>>        insteadOf = https://github.com/
>
> Does putting pushInsteadOf here work?
Yes, that was the trick.
Thank you very much.
Jonathan Nieder· Aug 5, 2018, 03:28 UTC · re: Jeffrey Walton · lore

Re: How to push using SSH and pull using HTTPS for all repos on GitHub?

Jeffrey Walton wrote:
> On Sat, Aug 4, 2018 at 9:26 PM, Jonathan Nieder <jrnieder@gmail.com> wrote:
>> Jeffrey Walton wrote:
>>> I'm having trouble setting up my ~/.gitconfig to push using SSH and
>>> pull using HTTPS for all repos on GitHub. The idea is, no passwords on
>>> pulls and only use the password for push.
[...]
Show 8 quoted lines
>>>    [url "ssh://git@github.com/"]
>>>        insteadOf = https://github.com/
>>
>> Does putting pushInsteadOf here work?
>
> Yes, that was the trick.
>
> Thank you very much.
You're welcome.

I should have asked: do you remember where you first looked for this answer in documentation? Maybe we can improve it.

A few thoughts:
 1. git-push(1) could get a CONFIGURATION section.
 2. the description of url.*.insteadOf in git-config(1) could mention
    pushInsteadOf.  The description of url.*.pushInstead is right
    after it today, but there is nothing guaranteeing that that will
    continue to be true.
 3. Likewise, the description of remote.<name>.push could include a
    pointer.
 4. Maybe there's a place to put some thoughts on this in the
    user-manual, too.  It already mentions remote.<name>.push.
What do you think?

Thanks, Jonathan

← back to recent threads