public boolean load(File repoFile) {
		Repository repository;
		Git git = null;
		
		try {
			repository = new FileRepositoryBuilder().setGitDir(repoFile)
					.setMustExist(true)
					.readEnvironment()
					.build();
		    git = new Git(repository);

		    branchFull = repository.getFullBranch();
		    branchShort = repository.getBranch();
		    state = repository.getRepositoryState().getDescription();

			for (Ref branch : git.branchList().call()) {
				if (branch.getName().equals(branchFull)) {
					BranchTrackingStatus bts = BranchTrackingStatus.of(repository, branchFull); 
					
					if (bts != null) {
						RemoteConfig rc = new RemoteConfig(repository.getConfig(), repository.getRemoteName(bts.getRemoteTrackingBranch()));
						
						for (URIish uri : rc.getURIs()) {
							if (uri.isRemote() && uri.getHost().toLowerCase().equals("github.com")) {
								remote = new GitInformationRemote();
								
								remote.branch = bts.getRemoteTrackingBranch();
								remote.uri = uri.toString();
								remote.link = "http://" + uri.getHost() + uri.getPath().replace(".git", "");
								remote.name = uri.getHumanishName();
								
								remote.ahead = bts.getAheadCount();
								remote.behind = bts.getBehindCount();
							}
						}
					}

					commits = loadCommits(repository, git, branch);
				}
			}
		    
		    git.close();
		} catch (IOException | GitAPIException | URISyntaxException e) {
			e.printStackTrace();
			
			isRepository = false;
			
			if (git != null) git.close();
			return false;
		}

		isRepository = true;
		return true;
	}