Can't push or pull from a repository
症状
When attempting to pull or push to a managed Git repository, you get the following error:
error: The requested URL returned error: 400 while accessing https://username@fisheye.mycompany.com/git/my-repository.git/info/refs
原因
You're seeing a 400 (BAD REQUEST) as the git client is encountering a 401 (AUTHENTICATION REQUIRED) using the Git "smart" protocol and automatically dropping back to the "dumb" protocol, which Fisheye does not support. The underlying cause is that your authentication has failed, or you do not have permission to pull from (or push to, if you're attempting a push) the requested repository. To resolve this issue, check the following.
Are you using Git 1.7.1.1 on both client and server?
Versions of Git prior to 1.7.1.1 did not support lazily requesting basic authentication.
Do you belong to a group that has permission to read/write to the target repository?
Check that a group that you belong to has Read access (for pull commands) and/or Write access (for push commands) on the target repository's Permissions tab.
If you have Use repository defaults checked to ensure that the defined default permissions grant you read and / or write access.
Has your authentication been CAPTCHA'd?
Fisheye implements CAPTCHA as a security constraint to prevent evildoers from determining your username and password via brute force attacks. As the Git client has no support for solving CAPTCHA requests, you must access your Fisheye instance via a web browser to solve a CAPTCHA if you've had too many failed login attempts. To do this:
- Navigate to your Fisheye server using a web browser.
- Log out of Fisheye.
- Attempt to login to Fisheye.
- If you're presented with a CAPTCHA image to solve, this is likely what's been causing your Git pushes and pulls to fail.
- Solve the CAPTCHA and login to Fisheye.
- Re-attempt a push or pull from the command line.
Did you type your username and password correctly?
The final thing to check is that you definitely entered your username and password correctly. The Git client doesn't display your password on screen, so ensure that CAPSLOCK is off and double-check that you're using the username and password that correspond to this particular Fisheye server.
If you're still stuck, please raise a support request and our legendary support staff will help you out.