Git FAQ


Introduction

Purpose: This FAQ is to collect git specific information regarding to
  • What git is
  • How to use git, and more specifically GitHub
  • What tools are available
  • Caveats
  • Best practices at 52°North

What is git?

Git is a distributed source code management system including version control. Like CVS/SVN it enables collaborative work, e.g. software (but is not restricted to). Git gets rid of many disadvantages developers are facing when using SVN (like SVN superseding CVS). It is not the only distributed (or decentralized) source code management system, but the most commonly used. Many open source projects have switched to using git instead of SVN as it makes collaborative work a whole lot easier.

What can I do with GitHub?

GitHub is a collaboration platform. It makes collaborative software development much easier and is internally build on the git system. But it extends git in a few crucial aspects that make developing open source software (primarily, you can also use it to collaborate on writing texts!) more fun.

GitHub provides free hosting of git repositories.

It also provides additional resources that are needed for successful software development, namely a wiki for documentation, an issue tracker for task and bug management, great graphs to track activities in a project, social features (following people and projects), a great user interface to explore repositories (look at commit histories, differences between files, ...), and user management.

To understand the background of the GitHub platform, sit back and enjoy this keynote by GitHub CEO and co-founder Chris Wanstrath: http://video.arcgis.com/watch/3223/social-coding-and-the-future-of-open-source

Learn Git

Best entry site is the Git site itself, but see here some selected links (ordered, getting more detailed): In (very) short: git is comprised of several basic verbs that can be used to share code and changes to code across different instances of a repository:
  • You can clone a repository.
  • You can add files and commit changes to files into a repository.
  • You can push changes to a repository (local or remote).
  • You can pull changes from other repositories.

Learn GitHub

The most important resource to lean to use GitHub is https://help.github.com/.

The bootcamp articles suffice to get a first understanding: https://help.github.com/categories/54/articles. Read them!

  • Go to http://github.com and create an account (it's free)
  • Fork a repo of a project that interests you
  • Clone that fork to your local machine and import the code into your development environment
  • Improve or extend the code (e.g. take a look at tasks in the repositories issue tracker)
  • Commit your changes or add your new code to the local repository.
  • Push your changes to your fork
  • Create a pull request to the original project and discuss your new suggestions

How can I publish a software project on GitHub in the 52°North organisation?

Answer these questions to be directed to the wiki page that guides you further.

Please follow the GitHub project documentation conventions.

How can I migrate my existing SVN repository to GitHub?

See SvnToGitHubMigration.

How can I resolve merge conflicts with Eclipse?

See ResolveMergeConflictsInGitEclipse.

What Tools can I use instead of the command line to use git?

TortoiseGit
TortoiseGit integrates in the Windows Explorer context menu and eases to work with your working copy directly via Window's native file explorer interface
GitHub for Windows
Github for Windows links good with GitHub (naturally), but is not required to do so and can be used with other remotes, too.
Tool Collections
SourceTree
SourceTree is a free Git client for Windows and Mac from Atlassian
GitEye
GitEye is a free Git client for Windows. Linux and Mac from CollabNet

When fetching from remote I get an SSL error. What shall I do?

It depends. Following describes some common errors:

SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed.

See http://stackoverflow.com/questions/3777075/https-github-access/4454754#4454754

Are there naming conventions for 52°North staff or community members and their user accounts on GitHub?

No, see https://github.com/52North?tab=members.

How to update a fork directly from GitHub

http://www.youtube.com/watch?v=bTaFAqJ6bjE

Topic revision: r14 - 07 Jun 2016, EikeJuerrens
Legal Notice | Privacy Statement


This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Wiki? Send feedback