share your projects with the universe" • Github is a hosted source control solution, based on git. • Used by open source projects, personal projects • Paid-for offerings for non-public code There are other ways to do git, open source, and probably everything mentioned here ...
like less commit 76916fed387d9161d48b0f1e592685c183e4757c Author: Lorna Mitchell <[email protected]> Date: Wed Mar 14 21:06:24 2012 +0000 adding the actual announcement wording to the banner commit 3fdc9f6b9795ed6a3a02465817bfebb8f77ca34e Author: Kim Rowan <[email protected]> Date: Tue Mar 13 12:58:48 2012 +0000 Added info block to main page announcing php|arch Impact Award nom commit dc5777199aa2bb822b498ec1dea99f3e89ee90e0 Author: Lorna Mitchell <[email protected]> Date: Sun Mar 11 21:03:13 2012 +0000 removed some unused files
log -graph -oneline * 76916fe adding the actual announcement wording to the banner * 3fdc9f6 Added info block to main page announcing php|arch Impact Awa * dc57771 removed some unused files * aa502ec straightening out a problem with API metadata not showing up * 6719b8a GH #473: Refactored ternary to if * d6a69d7 Merge branch 'joindin-167' |\ | * b7effc5 JOINDIN-167: Facebook users without username (this is poss * | 6af9450 JOINDIN-167: reverted removal of facebook login * | 6249401 Merge branch 'master' of https://github.com/joindin/join |\ \ | |/ |/| | * 16b31d3 Merge remote-tracking branch 'lornajane/no-facebook' | |\ | | * 36ee9ea removing facebook login functionality - hopefully tempor | * | f4a2a73 removing references to the gravatar cache; these are ser | |/ | * 83d6c04 Prevented forwarding on to anywhere except this site after | * d411358 Merge remote-tracking branch 'mvriel/JOINDIN-161_2'
will be in your next commit (these are two different things) After editing a couple of files: # On branch impact-banner # Changes not staged for commit: # (use "git add <file>..." to update what will be committed) # (use "git checkout -- <file>..." to discard changes in working dir # # modified: src/.htaccess # modified: src/system/application/views/main/index.php # no changes added to commit (use "git add" and/or "git commit -a") To include changes in a commit, we need to stage them first using monogit add
branch impact-banner # Changes to be committed: # (use "git reset HEAD <file>..." to unstage) # # modified: src/system/application/views/main/index.php # # Changes not staged for commit: # (use "git add <file>..." to update what will be committed) # (use "git checkout -- <file>..." to discard changes in working dir # # modified: src/.htaccess #
the -m, git will open your default text editor to add a message • You can also supply a list of files to include in the commit • Use git add -interactive to stage sections of files
git checkout -- path/to/file If you have staged the changes, you can still undo them: git reset git reset --hard Reset will unstage the changes; the hard reset puts everything back to the most recent commit
(and merging!) are fast and painless • Branches are private by default • Branches are in the repo, they are not copies • no updating vhosts • only one directory with code in
new-branch-name Switch to an existing branch git checkout branchname List branches in this repo git branch Branches are local by default, they don’t synchronise to other repositories unless asked
usually each project does. Common features: • Branch for features • Branch for fixes • Branch for experiments • Basically: branch! By keeping changes in branches, they are very easy to merge to another repo or branch
on the project’s list • http://github.com/joindin/joind.in/pulls • Hopefully it gets merged • You get bragging rights :) • https://github.com/joindin/joind.in/contributors
(warning, contains bias!) • Check for introductory docs • http://joind.in/about • Get code and set up the project • usually, fork the repo and read the README
(warning, contains bias!) • Check for introductory docs • http://joind.in/about • Get code and set up the project • usually, fork the repo and read the README • Find the bug tracker, and pick something • http://joindin.jira.com
(warning, contains bias!) • Check for introductory docs • http://joind.in/about • Get code and set up the project • usually, fork the repo and read the README • Find the bug tracker, and pick something • http://joindin.jira.com • Talk to the other people in the project • #joind.in on freenode
(warning, contains bias!) • Check for introductory docs • http://joind.in/about • Get code and set up the project • usually, fork the repo and read the README • Find the bug tracker, and pick something • http://joindin.jira.com • Talk to the other people in the project • #joind.in on freenode • Share and enjoy