akonwi / git-plus

vim-fugitive like package for atom. make commits and other git things without the terminal

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Git Push does not work

bnb opened this issue · comments

I'm on Windows 10 running Atom Latest. The Push command does not work - I have to manually open the command line and run git push in the correct folder to have it run properly. There's also another git-based Atom plugin that's having the same issue of not being able to push on Windows, because of shelljs (jacogr/atom-git-control#61). Is there a way to fix this?

Same problem here with windows 7 and latest Atom version

Agreed, same thing.

Same issue here with windows 7, atom 1.0.2. Looks like it tries to open some window at the bottom of the editor, but it is blank:

image

Same problem Win 7 Atom - Latest Version 1.0.2

Just tried with my Mac on Yosemite (Osx 10.10.2) and Atom 1.0.2 and it works perfectly

The problem is on Windows, not Mac...

Same here on win7 64

Previous users have had this issue. I'm not familiar with windows but for them it was resolved after cleaning up environment variables and ssh keys.

See #74 #85 #103 #99 #82

Maybe this will help others with the same issue on Windows authenticating using an SSH key.

On Windows I've always used Pagent (http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html) to handle my SSH Keys. For some reason (I don't know why), these keys appear to be ignored when using git on Windows, hence the push fails.

To get round this, generate a new SSH key in using OpenSSH (these instructions look good: http://guides.beanstalkapp.com/version-control/git-on-windows.html#installing-ssh-keys) and copy the public key to GitHub in the usual way.

Finally, test "git clone" / "git push" works using the command line (as you'll see descriptive errors if there is a problem) and if that works, then try using git-plus in Atom. Worked for me.

My experience is that this is related to ssh keys, yes.

I'm having the same issue on Ubuntu. Git push works fine in the terminal, but not on Atom.

I'm not sure if my issue is related to everyone else's here but mine was giving me an error regarding askpass. I installed it with the command below and it's now working.

sudo apt-get install ssh-askpass

commented

Here has been my workaround for this issue, i could get git plus to find the right path the ssh keys were in but started getting, other error messages, I decided to try joncombe's approach and use pagent. Here's a very verbose how-to following each step I did to get atom to push and pull with git plus. These steps will convert your existing keys to a .ppk key without needing to change your keys on github or bitbucket.
You're going to need multiple putty programs so just get the .zip that has all the binaries.

  1. open puttygen.exe
  2. Under conversions select import key
  3. find and open your id_rsa key you've been using
  4. Put in your passphrase if you use one,
  5. to verify you can match keys on GitHub/Bitbucket comparing to the "Public Key for pasting into OpenSSH authorized_keys file:" section.
  6. Click "Save Private Key", it should be .ppk
  7. Open Pageant.exe, it opens as system tray icon
  8. Right click and select Add Key.
  9. Add your private key that was saved earlier in step 6.
  10. Set the environment variable for GIT_SSH to plink.exe
    GIT_SSH
    C:\path\to\plink.exe
  11. Input passphrase if needed.
  12. Right click pageant in your system tray, and select new session, this opens putty
  13. In the host name type git@github.com or git@bitbucket.com, connection type: SSH , port: 22 and open
  14. Accept the notice about the unknown host key blah blah.

the last step needed because plink is just a backend to putty's functions so connecting without doing this step doesn't accept the key and add to known hosts

Doing all this allowed me to push/pull with atom on windows.

sorry if i was too wordy.

I had the same issue on Windows 8.1 - everything worked except push. For me the issue was related to credentials (I had to insert the credentials from the cmd for each push), might help someone else too:

  1. First - the obvious, you must have git in your environment variables:

http://stackoverflow.com/questions/4492979/git-is-not-recognized-as-an-internal-or-external-command

  1. Install the Microsoft credential manager

https://github.com/Microsoft/Git-Credential-Manager-for-Windows

  1. Make one push from git bash to enter your credentials and restart atom and command prompt. It should remember your credentials and the push from Atom git plus should work.

I had the same problem, fixed environment variables, using Pageant and GIT_SSH for plink, but still didn't work, then eventually it did. I think if you can manage to push from the regular cmd command line, Atom should be able to push too.

After you make any environmental changes, use Task Manager to ensure all instances of the application under test (cmd, Atom, etc.) are killed and restarted. If in doubt, restart your computer (the Windows solution).

@ehasanbegovic Thank you Sir. Your comment helped me. Its working now. Just had to add the path variable

Adding the Credential Manager did the trick. Thanks. (Atom on Win7 64)

Had to do all things combined
Check Git path or set to default if you are able to access in cmd
Install Git Wincred [https://github.com/Microsoft/Git-Credential-Manager-for-Windows]
Do a manual push from windows cmd not Git bash
Add wincred to git credential [https://help.github.com/articles/caching-your-github-password-in-git/]

There is another issue related to pushing on windows machines at #413.

The solution posted there is:

In order to have the PUSH working, you need to add the GitHub.exe (not git.exe) path to Environment Variable PATH and restart Atom.

This is how I found GitHub.exe path (in Windows)

  1. Run GitHub desktop
  2. Open the Task Manager, right click on GitHub (32 bit) process and select Open File Location

In my case GitHub.exe was in the folder C:\Users\cassani\AppData\Local\Apps\2.0\H35QN991.JQW\RZJQ033T.E6B\gith..tion_317444273a93ac29_0003.0000_eb093b9833279bd4\

But I have the same problem on Mac, is there any related solutions? Thanks a lot.

@lleiou Do you have git configured to push using ssh without credentials?

commented

FWIW, I had the same issue, until I realized I was running an older version of Atom.
Updated to 1.13.1 and it works now.

@akonwi Yes I think I used SSH to push, do I need to extra step to set up the credentials???

@akonwi Thank you for your words, I finally made it!
I will write down my solution here tomorrow!

@akonwi I find that although I have added the key to the ssh-agent within the terminal, I have to add it again under Atom...That's how I fixed my strange problem......

Just chiming in that Credential Manager solves the issue. 👍

commented

@lleiou seems like you have fixed that problem, could you tell me how to "add it again under Atom"?

@genghisun Well this doesn't seem a perfect solution, but you can give it a try:

Assume you have "Open-terminal-here" package installed, open the terminal under one of your project, and type ssh-add ~/.ssh/id_rsa, then you will be prompted to input password, and git plus will work again...

screen shot 2017-04-26 at 1 02 27 pm

So every time git plus doesn't work, repeat the procedure above and it will be back to normal....👀 (at least on my Mac)

commented

@lleiou THANKS for your answering, ❤️

commented

Having the same problem. Confirmed that I can push via SSH with the terminal, but not while in Atom with git-plus.

git-plus_error

@sum01 Have you created a SSH config file?

A bigger problem here, as far as I am concerned, is silent failure. If you push, plugin works as if it actually happens for me, But it does not happen. :(

commented

@kishorramanan Yes, although I'm honestly not sure if it's correct.

Host github.com
    HostName github.com
    User sum01
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/id_rsa.pub

at the file path ~/.ssh/ssh_config

@sum01
if you are the single user you need not specify user and PreferredAuthentications
below is my config file for windows 10

Host stash.company.com
 IdentityFile C:\Users\mysusername\.ssh\id_rsa
Host github.com
 IdentityFile C:\Users\mysusername\.ssh\git_hub

make a git pull/push from bash once before you try it in atom

@ror6ax I had the similar problem, git credential manger also didn't help.
SSH and the above config solved the issue.

commented

@kishorramanan Didn't fix it. I got the little green popup on Atom showing it pushed, but opening the error bin thing (clicking git+ in the bottom-right) shows the same error as before. I still have bash open from doing a pull on the repo, which worked fine (verified by browsing around in the files that got pulled).

Side-note: Only the master branch is being detected in Atom. In reality, I have 3 branches, but the other 2 don't show up at all. This seems to be related to a different issue though.

@sum01 try updating GIT for the PUSH issue. as for branch, you can checkout each branch separately either in atom or in git bash, then try it from atom icon.

commented

@kishorramanan I'm already running Git 2.12.2-4, Atom 1.16.0-1, and git-plus 7.8.0 on Linux 4.10.13-1-ARCH. There's nothing to update to, barring dev repo's.

But anyways, I'm still not really sure what else I can do to get git-plus to be able to push. When that green box comes up saying "push successful" or whatever it says, git-plus seems to think it actually pushed files, as the once-orange (aka files with diff's) files get their colors changed back to normal. But then I open the git+ log and it shows the same ssh_askpass error in the image I posted before.

👍
Same proble here on Ubuntu 16.04

Atom latest version, same here

@ror6ax Yeah +100. If this failed loudly it would be much easier to figure out a fix. Primary issue here is definitely the silent failure.

Same here with Windows 10

"ssh_askpass" issue under Linux related to package ssh_askpass which should be installed, because git-plus ask password using this command.
For Gentoo linux exist at least 3 working packages:

lxqt-base/lxqt-openssh-askpass
net-misc/ssh-askpass-fullscreen
net-misc/x11-ssh-askpass