Git is adistributed version control system.It allows you to download the very latest version of thesource code, with all thebranches and tagged releases at your disposal.
You should download from Git if you are a developer and want tosubmit patches.
If you donot want to develop but only install MediaWiki and extensions, thendownload stable tarball releases instead.
SeeGit for more details, particularly for making contributions. Below are some quick directions for a couple common tasks.
You must have Git installed before you can use it. There are many ways to acquire Git, depending on your operating system.FollowGerrit/Tutorial#Set up Git, or use your favorite search engine.
It is recommended that you haveComposer installed to download and install third party libraries, but not required.
You can download MediaWiki core using Git, as well as all extensions currently installed on the Wikimedia Foundation server cluster and many other extensions hosted onGerrit.
The first step is to clone the MediaWiki core repository. This will take a while.
The latest development version of MediaWiki is tracked in the 'master' branch.
First make sure that you have created adeveloper account, so that you have an SSH username.
Then, in a terminal window, enter the following command to clone the repository:
gitclonehttps://gerrit.wikimedia.org/r/mediawiki/core.gitmediawiki
This clones the entire MediaWiki core repository, synced to the master branch, into a sub-directory namedmediawiki.
To install into a different directory, change that in the command line (for more inforefer to these docs).Once the repository is cloned, you canswitch to different branches or tags.The development branch,master, is the cutting-edge, developer version of MediaWiki; youshould not use master code for production under any circumstances as it is not considered stable.
If you do not want to develop software patches but want to anonymously clone the stable release branch 1.44, use this command instead:
gitclonehttps://gerrit.wikimedia.org/r/mediawiki/core.git--branchREL1_44mediawiki
If you have a slow internet connection and want to reduce the number of revisions that are cloned, add--depth=1 to thegit clone command.
Alternatively, specific stable versions of MediaWiki are tracked using 'tags'. These are analogous to the tarball releases.Currently, these are 1.44.2 (stable), 1.43.5 (LTS) and 1.39.15 (legacy LTS).
You can see all available tags with:
gittag-l|sort-VTo use a specific tag, e.g. the latest stable release:
gitcheckout1.44.2The branches and tags have abunch of Git submodules in them, for commonly-used extensions and skins and for thevendor/ directory.Themaster branch does not have these.To update the submodules, run:
cdmediawikigitsubmoduleupdate--init--recursiveMediaWiki usesComposer to manage external PHP libraries, all of which end up in thevendor/ directory in your MediaWiki directory.
To install these needed libraries, you have a choice:
composer update --no-dev from your MediaWiki directory.This is the recommended approach.php7.4 composer.phar update --no-dev.vendor/ directory inside the core folder of your MediaWiki installation:git clone https://gerrit.wikimedia.org/r/mediawiki/vendor.gitPrior to MediaWiki 1.25, external libraries were kept in the core repository, and no package manager was required.
If you're using a particular branch or the development version ("master" branch) of MediaWiki, picking up the latest changes is relatively easy. Change into your MediaWiki clone directory and issue this command:
gitpull
All of the latest changes for the branch you are using will be applied.
The new version of core may require newer versions of extensions and skins, so you must go into each extension and skin directory and update it with a command likegit pull --recurse-submodules.
You also need to updatevendor/ with any newer versions of required libraries.This often means running the following Composer command, but see#Fetch external libraries above for more details:
composerupdate--no-dev
After updating/upgrading the code and required libraries you should run the MediaWikiupdate.php command-line script to update database tables as needed:
phpmaintenance/run.phpupdate
If you useMediaWiki-Vagrant, it offers a single command,vagrant git-update, that performs all these steps.
Each of our versions are tracked as branches or tags. In order to switch to a different version (for example from themaster branch to a different branch or tag),checkout the particular branch or tag you want from within your MediaWiki clone directory:
gitcheckout<branch_name>
or
gitcheckout<tag_name>
The changes will be applied automatically and you will be all set to go.
<EXT> with the name of the extension you want to download, without spaces. ForExtension:TitleKey, it would be TitleKey. (case sensitive!)Download and clone an extension from Git:
With your developer account, use these commands to get the master branch:
cd/path/to/extensionsgitclonehttps://gerrit.wikimedia.org/r/mediawiki/extensions/<EXT>To clone and checkout a stable release branch instead, use these commands:
cd/path/to/extensionsgitclonehttps://gerrit.wikimedia.org/r/mediawiki/extensions/<EXT>--branchREL1_44You can view extension source code inGerrit's gitiles application, and at the URL:
https://gerrit.wikimedia.org/g/mediawiki/extensions/<EXT>/+/HEAD
If you prefer to haveall MediaWiki extensions that are at gerrit.wikimedia.org checked out to your machine, enter the following:
gitclonehttps://gerrit.wikimedia.org/r/mediawiki/extensions
Or, to checkout stable releases branch instead, use this command:
gitclonehttps://gerrit.wikimedia.org/r/mediawiki/extensions--branchREL1_44
After running thegit clone command, continue with these commands:
cd/path/to/extensionsgitsubmoduleupdate--init--recursiveAt any time, to update all extensions to their latest versions of that branch, enter:
cd/path/to/extensionsgitpullgitsubmoduleupdate--init--recursiveTo change to a different branch, such as after a new release:
gitsubmoduleforeach'git checkout -b REL1_43 origin/REL1_43 || :'Remember that you should only use versions of extensions from the same release as that version of MediaWiki and each other.
To track the master branch:
gitsubmoduleforeach'git checkout -b origin/master || :'Please note thatyou should not use master code for production under any circumstances as it is not considered stable.
If you only need a read-only checkout (for instance to grep or analyse all MediaWiki code), you can use theshared MediaWiki checkout on Labs, without downloading anything on your machines.
require_once …" or "wfLoadExtension( … )" fromLocalSettings.phpcomposer.local.json (usually in the "extra → merge-plugin → include" section)install-dir/extensions/MediaWiki 1.24 and later don't include skins in the Git download.
Follow the exact same procedure as for extensions (described in the previous section), but usingskins rather thanextensions in all URLs and paths.
Detailed installation instructions are available on each skin's page here on MediaWiki.org, for example seeSkin:Vector#Installation. Instructions for all other skins are analogous.
TheRevision as of 14:26, 21 March 2019 changed the standard of linking to gerrit.wikimedia.org:
from:
to: