background preloader

Learn.GitHub

Learn.GitHub

Free Software Project Hosting August 9th, 2009 I asked for suggestions a few days ago. I got several good ones, and investigated them. You can find my original criteria at the link above. Here’s what I came up with: Google Code Its very simple interface appeals to me. A big requirement of mine is being able to upload tarballs or ZIP files from the command line in an automated fashion. URL: googlecode.com Gitorious Gitorious is one of the two Git-based sites that put a strong emphasis on community. The downside of Gitorious or Github is that they tie me to Git. Gitorious fails several of my requirements, though. It can spontaneously create a tar.gz file from the head of any branch, but not a zip file. Potential workarounds include using Lighthouse for bug tracking (they do support git integration for changelog messages) and my own server to host tarballs and ZIP files — which I could trivially upload via scp. URL: gitorious.org Github At first glance, this is a more-powerful version of Gitorious. URL: github.com Launchpad

Preface Git is a version control Swiss army knife. A reliable versatile multipurpose revision control tool whose extraordinary flexibility makes it tricky to learn, let alone master. As Arthur C. Rather than go into details, we provide rough instructions for particular effects. I’m humbled that so many people have worked on translations of these pages. Dustin Sallings, Alberto Bertogli, James Cameron, Douglas Livingstone, Michael Budde, Richard Albury, Tarmigan, Derek Mahar, Frode Aannevik, Keith Rarick, Andy Somerville, Ralf Recker, Øyvind A. François Marier maintains the Debian package originally created by Daniel Baumann. John Hinnegan bought the gitmagic.com domain. My gratitude goes to many others for your support and praise. If I’ve left you out by mistake, please tell me or just send me a patch! This guide is released under the GNU General Public License version 3. $ git clone # Creates "gitmagic" directory. or from one of the mirrors:

Git Hooks Like many other Version Control Systems, Git has a way to fire off custom scripts when certain important actions occur. There are two groups of these hooks: client side and server side. The client-side hooks are for client operations such as committing and merging. The server-side hooks are for Git server operations such as receiving pushed commits. You can use these hooks for all sorts of reasons, and you’ll learn about a few of them here. Installing a Hook The hooks are all stored in the hooks subdirectory of the Git directory. To enable a hook script, put a file in the hooks subdirectory of your Git directory that is named appropriately and is executable. Client-Side Hooks There are a lot of client-side hooks. Committing-Workflow Hooks The first four hooks have to do with the committing process. The prepare-commit-msg hook is run before the commit message editor is fired up but after the default message is created. E-mail Workflow Hooks The first hook that is run is applypatch-msg.

I pushed 30 of my projects to GitHub Hey everyone, I just pushed 30 of my projects to GitHub. I realized that all the projects were scattered across my blog and there was no central repository. So I took time to organize them, write documentation, and uploaded them to GitHub. I did all of these projects for fun and to learn better programming. You can't become a great programmer if you don't program a lot. The more you program, the more language idioms and constructs you'll learn. These were all relatively small projects and I think I am ready to move to the next level. If you find any of my projects interesting, clone and start hacking. Here they all are. 1. Busy beaver is a computer science problem to finding the smallest Turing Machine that outputs the most data and eventually halts. 2. Current Feedburner statistics graphs do not look nice. 3. This is a Perl program that parses public statcounter data for codinghorror.com blog and stores the search keywords in an SQLite database. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.

Git for the lazy - Spheriki From Spheriki Git is a distributed version control system . No, you don't need to know what that means to use this guide. Think of it as a time machine: Subversion or CVS without the cruft. If you make a lot of changes, but decided you made a mistake, this will save your butt. This guide is for people who want to jump to any point in time with their project/game/whatever, and want something to use for themselves. Windows For Windows, you have two options: msysGit Download and install msysGit to use Git in Windows's cmd.exe console. Cygwin Download Cygwin . Put setup.exe in a folder of its own in your documents. Launch setup.exe . While installing Cygwin, pick these packages: from the DEVEL category (if you're wimpy) or (if you know it), both in the EDITORS category You'll now have a shortcut to launch Cygwin, which brings up something like the Linux terminal. Linux Install the git package using your preferred method (package manager or from source). Fire up your Cygwin/Linux terminal, and type: git init

A few git tips you didn't know about Notice: some of these commands or flags require git version 1.7.2. On OS X, upgrade easily with Homebrew: brew install git Show branches, tags in git log $ git log --oneline --decorate 7466000 (HEAD, mislav/master, mislav) fix test that fails if current dir is not "hub" 494a414 fix cherry-pick of a commit URL 4277848 (origin/master, origin/HEAD, master) whoops d270fae bugfix: git init -g 9307af3 test deps 8ccc17e 64bb19c bugfix: variable name 546726a dont need you 3a8d7af (tag: v1.3.1) v1.3.1 197f429 (tag: v1.3.0) v1.3.0 a1e1a50 not important 3c6af16 magic `cherry-pick` supports GitHub commit URLs and "user@sha" notation Diff by highlighting inline word changes instead of whole lines $ git diff --word-diff # Returns a Boolean. def command? This flag works with other git commands that take diff flags such as git log -p and git show. Short status output $ git status -sb M ext/fsevent/fsevent_watch.c ?? Push a branch and automatically set tracking

The impact of language choice on github projects Although I spend a lot of my play-time fooling about with other languages, my professional and released code consists of Python, C, C++ and, alas, Javascript. I've lived in this tiny corner of the magic garden of modern software development for 10 years, and I'm itching to strike out in a different direction for my next project. With this in mind, I've started to wonder about the impact of language choice on the development process. The rest of this post takes a basic look at the numbers for 12 languages. Lets look at the numbers. Lets start with a quick overview of the basics of the dataset. First, the sample size. This graph shows the median number of contributors to projects in each language. Here we see the median number of commits for projects in each language - in some senses, we can view this as a proxy for project age. This chart shows the median commit size, in lines of code. This shows the median number of commits contributors make. And now for something silly.

Git SCM Wiki This wiki has been archived and the content is no longer updated. Please visit git-scm.com/doc for up-to-date documentation. Welcome to the Git wiki web site. Starting points News October 21, 2016: Git User's Survey 2016 has been closed. Older news Good starting places for developing Git would be Using this Wiki UsingWiki Disambiguation Git is not to be confused with at least these three unrelated projects which also provide commands named git. gnuit (GNU Interactive Tools) is a set of file browsing and viewing tools (a text-based file manager).

Git tips from the trenches After a few years with git everyone has their own bag o’ tricks - a collection of bash aliases, one liners and habits that make his daily work easier. I’ve gathered a handful of these with varying complexity hoping that it can give a boost to you. I will not cover git or VCS basics at all, I’m assuming you’re already a git-addict. So fire up your favorite text editor and bear with me. Check which branches are merged After a while if you branch a lot you’ll se your git branch -a output is polluted like hell (if you havent’t cleaned up). $ git checkout master $ git branch --merged to see all the branches that have already been merged to the current branch (master in this case). You can do the opposite of course: How about deleting those obsolete branches right away? $ git branch --merged | xargs git branch -d Alternative: use GitHub’s Pull request UI if you’ve been a good sport and always used pull requests. Find something in your entire git history Local cherry-picking. Making typos? #! reflog

GitHub Firewall Install Git Reference Bien utiliser Git merge et rebase • Git Attitude : formations Git qualitatives et sympathiques Un git merge ne devrait être utilisé que pour la récupération fonctionnelle, intégrale et finale d’une branche dans une autre, afin de préserver un graphe d’historique sémantiquement cohérent et utile, lequel représente une véritable valeur ajoutée. Tous les autres cas de figure relèvent du rebase sous toutes ses formes : classique, tri-partite, interactif ou cherry picking. Dans cet article de fond, nous allons explorer en détail les sémantiques de merge et rebase, apprendre à choisir entre l’un ou l’autre, et donner des clés pour les utiliser au mieux afin d’obtenir un historique impeccable. Mise à jour : la version anglaise de cet article est ici Un historique propre, compréhensible et utile Une des compétences les plus importantes d’un utilisateur de Git réside dans la capacité à garder un historique public de commits qui soit propre et sémantique. Pourtant, ces deux commandes n’ont pratiquement rien à voir. Dans quels cas utiliser merge ? Dans quels cas utiliser rebase ? Et voilà !

Deployment Script Spring Cleaning Fast Version Control System Documentation Reference Reference Manual The official and comprehensive man pages that are included in the Git package itself. Quick reference guides: GitHub Cheat Sheet | Visual Git Cheat Sheet Book Pro Git The entire Pro Git book written by Scott Chacon and Ben Straub is available to read online for free. Videos See all videos → External Links The External Links section is a curated, ever-evolving collection of tutorials, books, videos, and other Git resources.

Related: