Username and password in command for git push

前端 未结 6 353
不思量自难忘°
不思量自难忘° 2020-12-04 07:55

It\'s possible to clone down a git repository, specifying username and password in the command. Example:

git clone https://username:password@myrepository.biz/f

相关标签:
6条回答
  • 2020-12-04 08:30

    I used below format

    git push https://username:password@myrepository.biz/file.git --all

    and if your password or username contain @ replace it with %40

    0 讨论(0)
  • 2020-12-04 08:39

    Yes, you can do

    git push https://username:password@myrepository.biz/file.git --all

    in this case https://username:password@myrepository.biz/file.git replace the origin in git push origin --all

    To see more options for git push, try git help push

    0 讨论(0)
  • 2020-12-04 08:42

    According to the Git documentation, the last argument of the git push command can be the repository that you want to push to:

        git push [--all | --mirror | --tags] [-n | --dry-run] [--receive-pack=<git-receive-pack>]
                 [--repo=<repository>] [-f | --force] [--prune] [-v | --verbose] [-u | --set-upstream]
                 [<repository> [<refspec>…]]
    

    And the repository parameter can be either a URL or a remote name.

    So you can specify username and password the same way as you do in your example of clone command.

    0 讨论(0)
  • 2020-12-04 08:42

    Git will not store the password when you use URLs like that. Instead, it will just store the username, so it only needs to prompt you for the password the next time. As explained in the manual, to store the password, you should use an external credential helper. For Windows, you can use the Windows Credential Store for Git. This helper is also included by default in GitHub for Windows.

    When using it, your password will automatically be remembered, so you only need to enter it once. So when you clone, you will be asked for your password, and then every further communication with the remote will not prompt you for your password again. Instead, the credential helper will provide Git with the authentication.

    This of course only works for authentication via https; for ssh access (git@host.com/repository.git) you use SSH keys and those you can remember using ssh-agent (or PuTTY’s pageant if you’re using plink).

    0 讨论(0)
  • 2020-12-04 08:56

    It is possible but, before git 2.9.3 (august 2016), a git push would print the full url used when pushing back to the cloned repo.
    That would include your username and password!

    But no more: See commit 68f3c07 (20 Jul 2016), and commit 882d49c (14 Jul 2016) by Jeff King (peff).
    (Merged by Junio C Hamano -- gitster -- in commit 71076e1, 08 Aug 2016)

    push: anonymize URL in status output

    Commit 47abd85 (fetch: Strip usernames from url's before storing them, 2009-04-17, Git 1.6.4) taught fetch to anonymize URLs.
    The primary purpose there was to avoid sticking passwords in merge-commit messages, but as a side effect, we also avoid printing them to stderr.

    The push side does not have the merge-commit problem, but it probably should avoid printing them to stderr. We can reuse the same anonymizing function.

    Note that for this to come up, the credentials would have to appear either on the command line or in a git config file, neither of which is particularly secure.
    So people should be switching to using credential helpers instead, which makes this problem go away.

    But that's no excuse not to improve the situation for people who for whatever reason end up using credentials embedded in the URL.

    0 讨论(0)
  • 2020-12-04 08:57

    For anyone having issues with passwords with special chars just omit the password and it will prompt you for it:

    git push https://YOUR_GIT_USERNAME@github.com/YOUR_GIT_USERNAME/yourGitFileName.git
    
    0 讨论(0)
提交回复
热议问题