Git Walkthrough
This is a first draft, very basic guide how to get GIT setup on windows or osx, and commit code to TEST.
Documentation:
Setting up the Environment
Windows
Install msysgit
- Download latest version from http://code.google.com/p/msysgit/downloads/list (ie: Git-1.7.4-preview20110204.exe)
- check “Git Bash Here”
- check “Git GUI Here”
Run Git from the Windows Command Prompt
- checkout as-is, commit unix-style line endings
Install tortoise
- OpenSSH, git default ssh client
Mac OSX
Install Git for OSX:
- Standalone package:
- Grab the latest git installer for your version of osx from Git for OSX
- Run the contained pkg
- If you want git to be accessible via the PATH and MANPATH variables for non-terminal programs, run the included shell script.
- MacPorts:
- sudo port install git-core
Generate an SSH Key:
- Follow the directions here: Mac Key Setup
Configure Line Endings
- In order to avoid issues with line endings when cloning on to Windows machines, follow the directions here: Dealing with line endings
Setting up Git global configs
Before making commits, it is useful to add your name and email:
- git config —global user.name “Your Name”
- git config —global user.email “yourmail@domain.tld”
If you connect to github without ssh you might need a token:
- Follow the directions here: Email Settings
Setting up github repository:
- Go to https://github.com/moodle/moodle, click “fork”
- Got to Admin→Collaborators→Add (add any number of collaborators to the project)
- Checkout a local copy of the forked code: git clone https://YOUR_GITHUB_USERNAME@github.com/ucla/moodle.git ./YOUR_LOCAL_MOODLE_FOLDER/
Execute the following commands:
git branch TESTgit push origin TESTgit branch STAGEgit push origin STAGEgit branch SSCgit push origin SSC
New Features
- git clone https://YOUR_GITHUB_USERNAME@github.com/
ccle/ucla/moodle.git ./YOUR_LOCAL_MOODLE_FOLDER/ git checkout DEVgit checkout -b <feature_name>- change file
git commit -a -m "updating README.txt to include basic git instructions"-
git push origin <feature_name>
(Repeat above 3 steps as needed) git rebase DEVgit checkout DEVgit merge --squash <feature_name>git commit -m <message>git branch -d <feature_branch>git push origin DEVgit push origin :<feature_branch>
Bug Fixes
- git clone https://YOUR_GITHUB_USERNAME@github.com/
ccle/ucla/moodle.git ./YOUR_LOCAL_MOODLE_FOLDER/ git checkout DEV- change file
git commit -a -m "updating README.txt to include basic git instructions"git push origin DEV
Get changes onto TEST
git checkout TESTgit cherry-pick e9cb5git cherry-pick d40dc- Repeat as necessary to get all the changes
git pull origin TESTgit push origin TEST
Updating DEV from moodle.org
git checkout DEVgit remote add upstream https://github.com/moodle/moodle.gitgit fetch upstreamgit merge -m "upgrading Moodle to version X.Y" <commit_hash>- START RESOLVE CONFLICTS
git add <conflicted_file>git add <conflicted_file>git commit -m "upgrading Moodle to version X.Y"- DONE RESOLVE CONFLICTS
git push origin DEV