== Using git with MythTV == You will need to create a github account, and link your @mythtv.org email address to it (if a MythTV developer). If you aren't a part of the development team, you can still create a github account and fork the repository into your account, giving pull requests later to get your changes incorporated. For commit access, you will need: {{{ git clone git@github.com:MythTV/mythtv.git }}} For read-only access, use: {{{ git clone git://github.com/MythTV/mythtv.git }}} === configuring git === If this is the only git repo you are using: {{{ git config --global user.name "Your Name" git config --global user.email you@example.com }}} If you do already have other repos going, you will be better off using (from the mythtv checked-out directory): {{{ cd /path/to/mythtv-git/ git config user.name "Your Name" git config user.email you@example.com }}} Please use your real name and a real email address. If you are on the MythTV development team, please use the assigned canonical @mythtv.org email address. This will be attached to each commit you make, and is needed for legality reasons (i.e. to clearly denote the contributors, which can be a life-saver if we have licensing issues later) === git for svn users === https://git.wiki.kernel.org/index.php/GitSvnCrashCourse https://git.wiki.kernel.org/images-git/7/78/Git-svn-cheatsheet.pdf ||= svn command =||= git command =||= comments =|| || svn checkout || git clone || || || svn diff || git diff || pretty much identical || || svn stat || git status || || || svn commit || git commit / git push || in git, git commit commits locally, git push pushes to the upstream repo. Additionally, changes must be staged before committing. || || ---- || git add -i / git add -p || stage commits || || svn update || git pull || technically, this is two steps combined (git fetch, git merge) || || svn update (to recover a single file) || git checkout HEAD filename || || || svn update (to recover all deleted files) || git ls-files -d | xargs git checkout -- || || || svn copy (to create a branch) || git branch (or git checkout -b) || || || svn copy (to create a tag) || git tag || || || svn switch || git checkout branch || || || svn merge || git merge || || || svn revert || git checkout /path/to/file or git reset /path/to/file || || || svn revert (for pristine index and working copy) || git reset --hard || || Also, github has a wealth of good information.