How to fix git config issue where all commands go to blank line? - macos

I am not new to git but I am newer to github and still a beginner with bash. I was trying to set some config stuff and ending up breaking git on my local machine. Here's what I did following these instructions on github for password caching.
$ git config --global user.name 'myusername'
$ git config --global user.email 'myemail#email.com'
$ git credential-osxkeychain
git: 'credential-osxkeychain' is not a git command. See 'git --help'.
$ curl -s -O http://github-media-downloads.s3.amazonaws.com/osx/git-credential-osxkeychain
$ chmod u+x git-credential-osxkeychain
$ which git
/usr/bin/git
$ sudo mv git-credential-osxkeychain /usr/bin/git
$ git config --global credential.helper osxkeychain
^?^C
After this command git I received no response, just a new line which I eventually ctrl+c'ed out of. Now, whenever I do a git command in any repo, not just this one, the cursor just moves to a new line. I'm unable to push/pull/clone or do use of the commands I normally use.
I've tried reinstalling the latest version of git and still have the problem. What should I do?
Update:
I've tried unsetting credential.helper and uninstalling and reinstalling git. Still seeing the same behavior. I noticed that if I run just $ git the response is Usage: git credential-osxkeychain <get|store|erase>. At this point, I just want to delete credential-osxkeychain. Still unsuccessful.
As requested, the output of which -a git is:
$ which -a git
/usr/bin/git
/usr/local/git/bin/git

When you ran this command:
$ sudo mv git-credential-osxkeychain /usr/bin/git
You overwrote the existing git executable with the git-credential-osxkeychain executable. That script is only meant to be run as a sub-command of Git, not standalone.
If you use Time Machine, you can try to restore the old /usr/bin/git from a backup. Otherwise, you'll need to reinstall Git.
Based on the comments below, it appears that /usr/bin/git is actually still git-credential-osxkeychain, probably because Git installed itself into /usr/local instead of /usr/bin.
If you don't care about the keychain behavior anymore, you can remove the current git executable altogether:
$ sudo rm /usr/bin/git
That may cause Git to start working for you immediately if /usr/local/git/bin is in your path. Or you could simply move it to /usr/local/git/bin/git-credential-osxkeychain:
$ sudo mv /usr/bin/git /usr/local/git/bin/git-credential-osxkeychain
which (again, assuming your path is correct) should allow you to use it as a credential helper like you originally wanted.

Related

'git init -b <branch name>' command in terminal is throwing an 'unknown switch' error

I am trying to add an existing project to GitHub using the command line. I am in the relevant working directory in the terminal and am trying to use the git init -b main command.
Initially, I was getting an error relating to xcode:
xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
I tried xcode-select --install but the software was unavailable from the update server, so I downloaded 'Command Line Tools for Xcode 12' from https://developer.apple.com/download/more/.
Now on entering git init -b main I am getting the following:
error: unknown switch `b'
usage: git init [-q | --quiet] [--bare] [--template=<template-directory>] [--shared[=<permissions>]] [<directory>]
--template <template-directory>
directory from which templates will be used
--bare create a bare repository
--shared[=<permissions>]
specify that the git repository is to be shared amongst several users
-q, --quiet be quiet
--separate-git-dir <gitdir>
separate git dir from working tree
I am running git version: 2.24.3 (Apple Git-128)
Any help much appreciated!
The -b flag is only available in version 2.28 or later, you need to upgrade your Git.
On debian-based Linux systems such as Ubuntu, do the following:
sudo add-apt-repository -y ppa:git-core/ppa
sudo apt update
sudo apt install git -y
git 2.24 doesn't have option -b/--initial-branch. It was added in git 2.28. You need to upgrade to use the option.
Or, as #matt said, create a repo and then rename the branch:
git init repo
cd repo
git branch -m master slave
prior to git v2.28
git init # ①
git symbolic-ref HEAD refs/heads/main # ②
① After git init, the branch master does not actually exist. Branches get created only when they have at least one commit.
② This updates .git/HEAD to contain ref: refs/heads/main instead of ref: refs/heads/master. Alternatively, git checkout -b main.
git v2.28+
As #phd said, the -b/--initial-branch option was added in git v2.28. git 2.28 also introduces a config option to specify your preferred default branch:
git config --global init.defaultBranch main
Learn more about the new init.defaultBranch setting in GitHub's blog post.
In case you need to install the latest git version (in Ubuntu)
sudo add-apt-repository -y ppa:git-core/ppa
sudo apt-get update
sudo apt-get install git -y
Ref: https://gist.github.com/YuMS/6d7639480b17523f6f01490f285da509
This is happening due to the unavailability of a tool called Xcode Select, running xcode-select --install in your terminal fixes these issues with Git not working.

Updated Git but still showing old version

I downloaded and installed Git 1.8.4.2 from this link: http://git-scm.com/downloads. However, when I run git --version from the Terminal I get:
[~/workspace/ruby]: git --version
git version 1.7.4.4
I've tried restarting the terminal and my computer. I then tried using the info at https://code.google.com/p/git-osx-installer/wiki/Uninstall. I did the following in the terminal from within /usr:
sudo rm -rf /usr/local/git
sudo rm /etc/paths.d/git
sudo rm /etc/manpaths.d/git
I then ran the new git .dmg file again but am still getting 1.7.4.4 when I run git --version. I suppose there's something going on here with the Mac filesystem that I don't understand. Any help would be greatly appreciated!
Run the command:
which git
You'll probably see /usr/bin/git -- the Apple supplied version. This will be because /usr/bin appears in your PATH environment variable before /usr/local/git/bin. You can verify this by running the command:
echo $PATH
If that is the case then run this command:
export PATH=/usr/local/git/bin:$PATH
and then try git --version again. You should now get 1.8.4.2. This hasn't fixed it permanently yet though. You'll need to add the export PATH=... line to your ~/.bashrc so that it gets set for every shell.

Accidentally delete /usr/bin/git file and now I cannot work with git on the terminal

I had a problem with git on my machine and I accidentally deleted the /usr/bin/git from my system.
My git was installed through the XCode Command Line Tools and I cannot find a way to reinstall it.
The git was not uninstalled, the git file was removed.
Is there a way from XCode or somewhere else to reinstall the command line tools? or somewhere Where I can get the original git file to add to /usr/bin again?
THanks
sudo cp /Applications/Xcode.app/Contents/Developer/usr/bin/git /usr/bin/git
I don't know why /usr/bin/git isn't just a symlink to that file, but on my system it's a separate (identical) copy.

Trying to install git on OSX: cannont exec 'git-credential-osxkeychain': Permission denied`

I'm attempting to install Git on my new MBP and am following the documentation # https://help.github.com/articles/set-up-git.
I seem to have hit a snag at the point where it says : If you do not have the helper, you can download it and copy it to /usr/local/bin
I navigated to /usr/local/bin in terminal and did a sudo wget [link to osxkeychain]. When I try to do a git config --global credential.helper osxkeychain I get a fatal: cannont exec 'git-credential-osxkeychain': Permission denied.
What did I do wrong?
Thanks!
Tre
Download the git-credential-osxkeychain file to your desktop(!).
Open the Terminal application.
Type in the following:
sudo cp ~/Desktop/git-credential-osxkeychain /usr/local/bin/git-credential-osxkeychain
sudo chmod 755 /usr/local/bin/git-credential-osxkeychain
sudo git config --global credential.helper osxkeychain
Test it with:
sudo git credential-osxkeychain
See the sudo prefix? It seems to be required for the credential stuff... It should now output Usage: git credential-osxkeychain <get|store|erase>
Make the downloaded file executable:
chmod 755 git-credential-osxkeychain
Homebrew's git package sets this up; just:
brew install git
and you're away.
Tried sudo?
/usr/bin is protected. Or you could try downloading git executables somewhere on your laptop and add that location to your PATH.
One of the common mistakes made by people starting on git is that they have the wrong executable for the operating system.
Please make sure that when you go to git help setup page you click on the right link
for example the following link has MAC | WINDOWS | LINUX | ALL options in the top of the page which is small enough to be ignored by many.
https://help.github.com/articles/set-up-git
This has happened to many of my team member to install osx for ubuntu and end up getting the error mentioned above

Git: 'rebase' is not a git command. See 'git --help'

I set up github for mac
and now I am trying to use the git command from the terminal.
If I try to run the git rebase command I get the following message
> cd /Applications/GitHub.app/Contents/Resources/git/bin
> git rebase
git: 'rebase' is not a git command. See 'git --help'.
>git --help
usage: git [--version] [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]
[-p|--paginate|--no-pager] [--no-replace-objects] [--bare]
[--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]
[-c name=value] [--help]
<command> [<args>]
The most commonly used git commands are:
...
rebase Forward-port local commits to the updated upstream head
....
So as you can see from the help output the option rebase is present.
What is wrong in my git?
git --version
git version 1.7.8.2
For me, I found that to fix this error message ("'rebase' is not a git command") I needed to set up Git "exec-path", either via command-line for one-shot use, or better via environment variable:
export GIT_EXEC_PATH=/PATH/TO/git/libexec/git-core
You're using the Git build that comes with GitHub for Mac. They (GitHub, that is) probably modified the binary to remove features that GitHub for Mac doesn't use.
You should really install your 'own' Git. I recommend using Homebrew: Link
This occasionally occurs to me, but only in association with changes in Xcode installation or macOS installs.
The Xcode command line tools need re-installing:
$ xcode-select --install
This is will launch the GUI for installing those tools. Once this finishes, git works as expected.

Resources