We like TortoiseGit, and want to take advantage of GitHub's 2-Factor Authentication...but the two don't seem to want to work together.
- The way this is usually handled is that a special app-specific password is generated, so that the app can still access your account, even if it's protected by 2-Factor Auth. Google does this, for example. I'm not sure if GitHub provides this though, I didn't see anything about it in their 2-Factor Auth documentation.user456814– user4568142014-02-19 21:14:59 +00:00Commented Feb 19, 2014 at 21:14
6 Answers
To compliment Cupcake's answer, use the Personal Access token feature within GitHub.com while using TortoiseGit:
Set up a personal access token - taking note of the generated token (use the Copy to clipboard button next to the generated token).
Set TortoiseGit to remember your password as detailed here.
Now perform a pull operation on GitHub.com, enter your username, but instead of using your normal password, use the token that was generated in step #2.
Perform another pull operation on GitHub.com to ensure the token is remembered.
1 Comment
The GitHub blog post about 2-Factor Authentication mentions that you can generate a "personal access token", that can be used in place of a password when 2-Factor Auth is enabled:

I'm not sure if it will actually work with TortoiseGit, but maybe you can give it a try? You can generate an access token at the Authorized applications settings page:

1 Comment
Once you create a Personal Access Token in github (see: https://docs.github.com/en/github/authenticating-to-github/keeping-your-account-and-data-secure/creating-a-personal-access-token), go to your TortoiseGit settings for your repository, then go to the local config like so:
After that, edit the URL to the repository, in the format of github username:access_token@rest/of/the/url.git, like so:
Worked for me. Was able to push code with no problems.
Comments
In case someone has the same problem - using access tokens with TortoiseGit works in general, though for some reason I couldn't force it to use normal authentication prompt, so I had to do git clone https://ghusername:[email protected]/repo.git
Comments
This seems to be around for a while and thanks to "Pawel Gorczynski's" answer above I managed to get this to work.
In a specific repository open the '~/repo/.git/config' file and create a line as follows:
[credential "https://GHUserName:[email protected]/GHUserName/GHRepository"]
GHUserName = Your user name on GitHub not your email.
GHPersonalAccessToken = The entire token string generated at https://github.com/settings/tokens
GHRepository = Name of the repository this access token was made for, note '.git' has been excluded.
You can find or create the config file within '~/repo/.git/config' the config file has no extension and should already exist.
Comments
You will have to generate access token to pull/push code in Github having two factor authentication using tortoise . Use this token as password.
Here are the additional steps –
https://help.github.com/articles/creating-an-access-token-for-command-line-use/

