Warning: This page has not been updated in over over a year and may be outdated or deprecated.
development:recommended_tools:git
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
development:recommended_tools:git [2018/07/24 12:00] – demiankatz | development:recommended_tools:git [2022/12/14 18:39] (current) – [Getting Started] demiankatz | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== Git ====== | ====== Git ====== | ||
- | Git is a distributed version control system. | + | Git is a distributed version control system. |
===== Cloning the Repository ===== | ===== Cloning the Repository ===== | ||
- | To get a copy of the latest | + | To get a copy of the latest |
< | < | ||
Line 17: | Line 17: | ||
</ | </ | ||
- | ===== Managing a VuFind | + | ===== Managing a VuFind® |
- | Git can be a useful tool for managing and deploying your local custom installation of VuFind. This section describes one possible approach. It assumes some familiarity with Git; see below for resources to help you learn more. | + | Git can be a useful tool for managing and deploying your local custom installation of VuFind®. This section describes one possible approach. It assumes some familiarity with Git; see below for resources to help you learn more. |
==== Getting Started ==== | ==== Getting Started ==== | ||
- | 1.) Create a fork of the main VuFind | + | 1.) Create a fork of the main VuFind® |
- | 2.) On your server, clone the fork and check out the appropriate branch or tag for your needs. If you want to stay up to date with bleeding-edge development, | + | 2.) On your server, clone the fork and check out the appropriate branch or tag for your needs. If you want to stay up to date with bleeding-edge development, |
3.) From the checked-out branch or tag, create a new branch for your local work on the server (for example, you might create a development branch for your development server, a staging branch for your staging server, and a production branch on your production server). | 3.) From the checked-out branch or tag, create a new branch for your local work on the server (for example, you might create a development branch for your development server, a staging branch for your staging server, and a production branch on your production server). | ||
- | 4.) Set up and configure VuFind (you can follow the usual [[:installation|Installation]] documentation, | + | 4.) Set up [[development:recommended_tools: |
- | 5.) Commit your local custom code and configuration, then push everything up to your fork. | + | 5.) Set up and configure VuFind® (you can follow the usual [[: |
+ | 6.) Commit your local custom code and configuration, | ||
+ | |||
+ | :!: Note that, starting with release 9.0, VuFind® includes rules in its .gitignore file that will prevent you from committing certain files from your local/ | ||
+ | |||
+ | < | ||
+ | !*.ini | ||
+ | !*.json | ||
+ | !*.yaml | ||
+ | </ | ||
==== Deploying on Multiple Servers ==== | ==== Deploying on Multiple Servers ==== | ||
- | As suggested in step 3 above, if you have a development --> staging --> production cycle, it is useful to create a separate branch for each server where you are deploying | + | As suggested in step 3 above, if you have a development --> staging --> production cycle, it is useful to create a separate branch for each server where you are deploying |
=== Establishing and Updating a New Server Branch === | === Establishing and Updating a New Server Branch === | ||
Line 53: | Line 62: | ||
From this point forward, updating your staging server to receive the latest changes from development is simply a matter of pushing up the development branch from the development server, fetching the changes on the staging server, and merging the latest " | From this point forward, updating your staging server to receive the latest changes from development is simply a matter of pushing up the development branch from the development server, fetching the changes on the staging server, and merging the latest " | ||
+ | ==== Upgrading ==== | ||
+ | |||
+ | You will periodically want to update your fork with upstream changes -- for example, when a new feature you need is added to the dev branch, or when a new official release is issued. | ||
+ | |||
+ | For example, suppose that you established a " | ||
+ | |||
+ | 1.) Set up a remote named " | ||
+ | |||
+ | 2.) Perform a "git fetch upstream" | ||
+ | |||
+ | 3.) Perform a "git merge v5.0" to bring in the release 5.0 changes. | ||
+ | |||
+ | 4.) Run " | ||
+ | |||
+ | 5.) Update your local configurations and customizations as described in the [[installation: | ||
+ | |||
+ | :!: The [[videos: | ||
===== Learning More ===== | ===== Learning More ===== | ||
Line 60: | Line 86: | ||
* [[http:// | * [[http:// | ||
- | * [[development: | + | * [[development: |
---- struct data ---- | ---- struct data ---- | ||
+ | properties.Page Owner : | ||
---- | ---- | ||
development/recommended_tools/git.1532433625.txt.gz · Last modified: 2018/07/24 12:00 by demiankatz