Reputation: 3341
Sorry, I'm a git newbie (though I'm very familiar with older source control systems like cvs and svn) ...
My ultimate goal is to add a file to a remote repository (one not on my machine) by cloning that remote repository locally, adding the file to the local repository, committing my change, and then pushing my local repository back to the remote.
I tried this:
git clone ssh://user@server/Users/GitRepo/Project.git
<create file locally>
git add <localfile>
git commit -m "Narg"
git push
But it just says "Everything up to date".
So I tried going step-by-step, and got even more confused.
git clone ssh://user@server/Users/GitRepo/Project.git
git status
And it tells me
# Not currently on any branch
# Untracked files:
followed by a long list of Untracked files.
Which seems really strange, why would the files be untracked if I just cloned the repository?
If it's important, the remote repository is brand-new, created via svn2git.
If I type
git remote show origin
it tells me
* remote origin
Fetch URL: ssh://user@server/Users/GitRepo/Project.git
Push URL: ssh://user@server/Users/GitRepo/Project.git
HEAD branch: master
Remote branch:
master tracked
Local branch configured for 'git pull':
master merges with remote master
Local ref configured for 'git push':
master pushed to master (up to date)
and if I type
git branch -a
it tells me
* (no branch)
master
remotes/GitRepo/master
remotes/origin/HEAD -> origin/master
remotes/origin/master
So am I just confused, and everything is actually working correctly? Or am I doing the git commands wrong? Or did I create the repository incorrectly, so no git commands will ever work properly?
Thanks, Chris
Upvotes: 24
Views: 14651
Reputation: 1219
For me the main issue was with long paths set the git config to below then take checkout
git config --system core.longpaths true
Upvotes: 1
Reputation: 31
Another reason this might happen: files with a colon in the name that were created in the github webinterface: lost:time.txt
Upvotes: 2
Reputation: 61
For others who may reach here by google.
I encountered the same issue - except that I was able to push and didn't get any "Everything up to date" message.
The problem was that windows and mac OS, unlike linux, are case-insensitive; but repo had been created on a case-sensitive OS and had got two version of some files differing only in capital and small letters.
There's an issue here about it.
Upvotes: 5
Reputation: 361
git config -l
if current git repository's core.precomposeunicode=true
try this,
git config core.precomposeunicode false
and this is why. from here
core.precomposeunicode This option is only used by Mac OS implementation of Git. When core.precomposeunicode=true, Git reverts the unicode decomposition of filenames done by Mac OS. This is useful when sharing a repository between Mac OS and Linux or Windows. (Git for Windows 1.7.10 or higher is needed, or Git under cygwin 1.7). When false, file names are handled fully transparent by Git, which is backward compatible with older versions of Git.
Upvotes: 15
Reputation: 11426
Git is a wonderful tool, but it's easy to get lost without a good map of where you are in the forrest of commits.
Here's how to get that map (I call it "gr" for "graph", but you could also call it "map" if you prefer):
git config --global alias.gr 'log --graph --full-history --all --color --decorate'
That's a one-time setup for git. Now whenever you're lost, just take a look at the map:
git gr
Your current location is denoted by the word "HEAD", and any branch names are also listed.
You'll see that you're currently not on any branch, which sounds a lot worse than it really is -- it's actually no big deal, it just means your commits won't go into the master branch the way you want them to.
So just get back on your master branch and commit there:
git checkout master
git add yourfile.txt
git commit -m'Narg'
git push
Also take a look at git gr
now and you'll see that HEAD is at the same commit as master, and master is at the same commit as origin/master, which means you're all set.
Upvotes: 4