Does git get confused if I have multiple clones of the same remote repo?
No.
The essense of a DVCS system (Git is a DVCS) is that all repositories are independent and self-contained. Despite this, in many cases it's convenient to make a repository possess some extra knowledge of the other repositories it contacts -- and Git has support for this -- but this does not create any dependencies between the repositories which have such knowledge about each other.
Specifically, a repo which has been cloned records no fact this had happened. Conversely, Git makes every clone "know" what repository it has been created from -- this is to ease the common case where you're likely to contact that same repo again from the clone. But this knowledge is very easy to remove completely, and any repository is able to "know" about any number of repositories, not just about a single one.
What I mean is that in one clone I've made commits (and pushes), and the other clone hasn't seen them.
It's unclear if you're just stating a fact or are actually wondering why this happened. If that took you by surprise then again you have to clearly understand that all Git repositories are independent from each other and new commits only ever appear in them at the discretion of their users -- either when they record new commits or when they fetch (and possibly merge or rebase). In other words, to get new data into a
repository you must either create it by yourself (commits) or fetch it from somewhere else (git fetch
/ git push
).
I seem to have some problems pulling to the clone that hasn't been used for commits/pushes.
On the other hand, the pull reports a lots of conflicts, but fetch says it's up todate.
This is because git pull
is git fetch
followed
by git merge
which is performed against the branch which is currently checked out. So either you have
a wrong branch checked out when doing git pull
or you have local modifications, so Git is unable to reconcile these changes with those it is about to bring in when attempting a merge.
Since you have provided exactly zero information about how exactly it went wrong, it's hard to judge more precicely. In a cases like this, it's best to drop into a shell and perform the necessary commands by
hand: this allows you to just copy-and-paste whay you entered and what Git output.
I just wondered if the same username with clones both having and missing commits could confuse Git.
Definitely not.
1. Well, techincally it's possible to "script" a repository using the so-called "hooks" so that a record of some form is done when another Git instance fetches data from this repository. But this would be a
a non-standard setup, and Git itself would not be able to make any use of this anyway.
2. Again, technically a repo might be armed with special hooks which would push changes into another repo after a push happened. Certain mirroring schemes are implemented this way. But again, this is a non-standard setup (which is also pretty complicated to get right).