git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: Need support with git credential storage

From
Jeff King <peff@peff.net>
Date
Jan 27, 2016, 22:28 UTC
Message-ID
<20160127222834.GA355@sigill.intra.peff.net>
In-Reply-To
<CY1PR0701MB1836FFF6CEAC69DFB5E86DACB7D90@CY1PR0701MB1836.namprd07.prod.outlook.com>
On Wed, Jan 27, 2016 at 09:49:38PM +0000, Charles Bélanger wrote:
Show 6 quoted lines
> Here's the git clone command launch by a .sh script file called from ~/.profile:
> git clone https://MyUserName@bitbucket.org/CompanyName/ProjectName.git ~/Projects/SubFolderName/ProjectName
> 
> Here's the error from bash .profile:
> Fatal: unable to access 'https://MyUserName@bitbucket.org/CompanyName/ProjectName.git/':
> Could not resolve host: bitbucket.org

I don't think this is related to credentials. The credential code should never do a network hostname lookup. It looks more like git-clone is failing to contact the host in the first place.

Try "ping bitbucket.org", which would presumably yield the same error. If so, you need to figure out why you cannot resolve the name, but that's beyond the scope of this list.

Show 10 quoted lines
> I followed the excellent Web page here:
> https://git-scm.com/book/be/v2/Git-Tools-Credential-Storage
> 
> Here's what I use as commands:
> git credential-store --file ~/git.store store
> protocol=https
> host=bitbucket.org/CompanyName/ProjectName.git
> username=MyUserName
> password=MyPassword
> (type enter on a blank line to exit)

This comes from the "under the hood" section, I think. In normal use, you shouldn't need to run the credential-helper directly. Just configure it, via:

  git config credential.helper "store --file ~/git.store"

The first time git needs a password, it will prompt you on the terminal, and then store the result in that file.

If you do want to pre-seed the store, you can do so using a command like the one above. But as you noted later, the "host" field should be _just_ the hostname, not the rest of the url path. That would go in the "path" field if you want it, but typically git does not even bother to store paths, and just keys on whole domains (see "credential.useHttpPath" in "git help config" for more details).

You can also specify a URL using the special key "url", which is then parsed into its components. So for example:

  $ git credential-store --file my-store store
  url=https://bitbucket.org/CompanyName/ProjectName.git
  username=foo
  password=bar
  [blank line to end]
  $ cat my-store
  https://foo:bar@bitbucket.org/CompanyName/ProjectName.git
  $ git credential-store --file my-store get
  url=https://bitbucket.org/
  [blank line ends our input, the rest is output]
  username=foo
  password=bar
Show 5 quoted lines
> Here's what the ~/git.store file looks like:
>         https://MyUserName:MyPassword@bitbucket.org%2fCompanyName%2fProjectName.git
> 
> I tried changing the %2f by / inside the git.store file and also tried // but it's still showing the same fatal error.
> Perhaps I don't use the host=  property correctly.
Right. It should be:
  https://MyUserName:MyPassword@bitbucket.org/CompanyName/ProjectName.git

Though as before, you can omit "CompanyName/ProjectName.git" completely, to cover the whole domain.

-Peff
Previous: Charles Bélanger
Message 2 of 2 in “Need support with git credential storage”
  1. Charles BélangerJan 27, 2016
  2. Jeff KingJan 27, 2016

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.