Source Code Management¶
- Source Code Management
- Virtual Folders / Working with Repositories in ArmA
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
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
- BETTER NOT USE UNTIL FURTHER DEVELOPED
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 firstname.lastname@example.org: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
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.
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
- git config branch.master.remote origin
- git config branch.master.merge refs/heads/master
- DevHeaven Git Discussion: http://dev-heaven.net/boards/1/topics/show/15
- Git: http://git-scm.com/
- Git <-> SVN Linked together: http://flavio.castelli.name/howto_use_git_with_svn
- Why Better: http://whygitisbetterthanx.com/
- GitFaq: http://git.or.cz/gitwiki/GitFaq
- GitHub: http://www.github.com
- Gitorious: http://gitorious.org/
- GitEnabled Pastebin: http://gist.github.com
- NetBeans Git Plugin (This is only a wrapper, you still require a Git Implementation (MSYS/CygWin))