Answers.Body: <p>Have a look at the project config feature in craft 3.1, it generates a yaml file describing all developer created data, e.g. fields, sections etc. which can be stored in GIT. However this does not save user created data e.g entries.</p>
  
  <p><a href="https://docs.craftcms.com/v3/project-config.html" rel="nofollow noreferrer">https://docs.craftcms.com/v3/project-config.html</a></p>
  
  <p>Also look at migrations; php scripts to create schema / data in DB. (Which can be stored in GIT) Migration Manager plugin will auto generate them for you</p>
  
  <p><a href="https://docs.craftcms.com/v3/extend/migrations.html" rel="nofollow noreferrer">https://docs.craftcms.com/v3/extend/migrations.html</a></p>
  
  <p><a href="https://packagist.org/packages/firstborn/migrationmanager" rel="nofollow noreferrer">https://packagist.org/packages/firstborn/migrationmanager</a></p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-02-05T14:12:12.510Z
Answers.LastActivityDate: 2019-02-05T14:12:12.510Z
Answers.UserDisplayName: Sam
Body: <p>I've seen many other questions about Craft deployment, some of which even use Git, but none seem to thoroughly address how one would use version control on their local development environment, push changes to a remote repository, and then pull changes down to the staging or production server.</p>
  
  <p>Sure, you can handle modifications to static assets and templates this way, but those changes often require modifications to sections, entries, categories, and globals, all of which are stored in the database. How would one manage the <em>entire</em> website through version control?</p>
  
  <p>Any help is appreciated. Thanks!</p>
  
Tags: <craft3><deployment>
Title: How should one go about using Craft with Git? [not duplicate]
ThreadText: # How should one go about using Craft with Git? [not duplicate]
  
  (Asked by: username_0 on 2019-02-05)
  
  I've seen many other questions about Craft deployment, some of which even use Git, but none seem to thoroughly address how one would use version control on their local development environment, push changes to a remote repository, and then pull changes down to the staging or production server.
  
  Sure, you can handle modifications to static assets and templates this way, but those changes often require modifications to sections, entries, categories, and globals, all of which are stored in the database. How would one manage the *entire* website through version control?
  
  Any help is appreciated. Thanks!
  
  **Tags:** craft3, deployment
  
  
  ---
  
  ## 1 answers
  
  ### Answer by username_1 on 2019-02-05. Score: 2 | Accepted answer
  
  Have a look at the project config feature in craft 3.1, it generates a yaml file describing all developer created data, e.g. fields, sections etc. which can be stored in GIT. However this does not save user created data e.g entries.
  
  <https://docs.craftcms.com/v3/project-config.html>
  
  Also look at migrations; php scripts to create schema / data in DB. (Which can be stored in GIT) Migration Manager plugin will auto generate them for you
  
  <https://docs.craftcms.com/v3/extend/migrations.html>
  
  <https://packagist.org/packages/firstborn/migrationmanager>
  
  
  ---
  
  