« Previous - Version 80/97 (diff) - Next » - Current version
Spooner, 03/17/2009 16:22
Moved SVN to its own page.

Source Code Management

Please click "Wiki" in the menu above for generic dev-heaven site help

GENERAL NOTE This wiki is based on the "Exception" rule. Please leave settings/configuration options default, unless it is explicitly listed to do otherwise.

Private and Public Key Files

To connect to a dev-heaven.net ssh host, you must authenticate with a private/public key combination.
Please follow the steps in Generating and using SSH keys to gain access.


Installation of the Core Client (MSysGit)

  • (Make sure the Putty suite is installed, see top of page)
  • Install MSysGit (1.6.2 Please lookup the latest available version)
    • It is recommended to add the Windows Explorer Extensions ("Git Gui Here", "Git Bash Here")
    • Choose to install for Windows Command Line (Middle option, out of 3)
    • Choose to use Plink for SSH
  • If GitExtensions is to be installed the core client is included in the full package.

Installation of the Interface Client(s)

There are several clients available, you can choose to use 1, or a combination of them, as you wish.


This is part of the MsysGit Installation
Usage Help, Examples and Screenshots

Git Extensions

This client is a bit like Tortoise's client, but operates a bit differently and has a few unique features
Usage Help, Examples and Screenshots
The full installer of this client includes MsysGit and KDiff.


This client is basically TortoiseSVN but then for Git, and is very much alike the SVN version


Handy Scripts / Tools

  • Git Remote Branching Very useful script written in Ruby. Can be used to simplify managing remote branches. (create, track or remove)

First Step: Cloning a repository

  • Please make sure your keyAgent (e.g Pageant) is running, and your private key is loaded
  • Use interface or commandline git and clone your first repository: git clone :REPOSITORYNAME.git (Receive repository name from admin)
    • In case of message: "The server's host key is not cached in the registry. You have no guarantee that the server is the computer you think it is.", press y. Incase that doesn't work, first connect once to the host with Putty, and accept the hostkey.


  • In Git, you have a local copy of the repository
  • If you commit, you only commit to your local repository. If you want to push your changes to the shared remote repository, you must first git pull, and then git push
  • If you wish to fetch, you use git pull
  • If there are things to merge, like changes to files by 2 persons, use git merge
  • every git command can be used with --help for basic help output

Information Resources

Here we save all additional information and links we find

Staging and Committing Changes

  • If you have Git Extensions installed and properly setup, you can right click a repository and choose "Git Extensions" -> "Browse"
    • You can use this tool to browse the repository+history
    • You can use the "Commit" option in this tool to stage your changes and commit. It works pretty handy with the rescan changes button and other options

Reverting Uncommitted Changes

  • By using the Git Extensions: Browse. Then Commit
  • If your file is already stage, unstage it
  • Right click the file in the top file list, and choose revert changes
  • There are more ways, like hard resetting to current head: git checkout -f (Or in the Commit dialog of Git Extensions: reset changes hard), however, this will revert ALL your currently uncommitted changes

Please note: Any changes you push to a remote repository will be recorded for good in that repository. This is a feature of Git - All changes are recorded - and cannot be undone. Please ensure that your local history reflects what you wish to appear on the remote before you push and edit accordingly. A revert is still possible but the original mistake will be still be shown on the remote.

Common problems

Access denied
FATAL ERROR: Server sent disconnect message
type 2 (protocol error):
"Too many authentication failures for git" 


fatal: protocol error: bad line length character

Usually happens when pageant is not running.
Or when you installed msysgit without pointing it to putty plink.
Note: GitExtensions has a feature to remember and prompt for loading of your private key.

You asked me to pull without telling me which branch you
want to merge with, and 'branch.master.merge' in
your configuration file does not tell me either.  Please
name which branch you want to merge on the command line and
try again (e.g. 'git pull <repository> <refspec>').

Use: git pull origin master
(or push)

Or setup the mentioned settings (execute from your repository folder):
  • git config branch.master.remote origin
  • git config branch.master.merge refs/heads/master


Experimental Clients

  • NetBeans Git Plugin (This is only a wrapper, you still require a Git Implementation (MSYS/CygWin))

Virtual Folders / Working with Repositories in ArmA

dev_heaven_private_read_only_key.ppk - Use ONLY for dev heaven - for read only access! (843 Bytes) kju, 04/22/2009 08:03

dev_heaven_public_read_only_key - Use ONLY for dev heaven - for read only access! (294 Bytes) kju, 04/22/2009 08:03