# Version Control - Git

## Comprehensive Tutorial

* [Pro Git](https://git-scm.com/book/en/v2)
* [Atlassian: Become a git guru.](https://www.atlassian.com/git/tutorials/) | [Advanced Git](https://www.atlassian.com/git/tutorials/advanced-overview)
* [git-scm reference](https://git-scm.com/docs)
* [Think Like (a) Git - *A GUIDE FOR THE PERPLEXED*](http://think-like-a-git.net/)

## Tips & Cheatsheet

* [git-tips](https://github.com/git-tips/tips)
* [Interactive Visual Git Cheat Sheet](http://ndpsoftware.com/git-cheatsheet.html)
* [GitHub Git Cheat Sheet](https://services.github.com/kit/downloads/github-git-cheat-sheet.pdf)

## Git Workflow and Branching Model

### GitFlow

![Git Branching Model](/files/-M63nP_VrHqO0N3PR6mz) Image Source: <http://nvie.com/posts/a-successful-git-branching-model/>

* [Visual Tutorial: Understanding the GitHub Flow](https://guides.github.com/introduction/flow/)
* [A successful Git branching model *By Vincent Driessen*](http://nvie.com/posts/a-successful-git-branching-model/)
* [Understanding the Git Workflow](https://sandofsky.com/blog/git-workflow.html)
* [GitHub Flow](http://scottchacon.com/2011/08/31/github-flow.html)

### Rethink GitFlow or "Anti-GitFlow"

* [GitFlow considered harmful](http://endoflineblog.com/gitflow-considered-harmful)
* [Follow-up to 'GitFlow considered harmful'](https://github.com/aaronice/study-notes/tree/c28e48b5ed1f04feded3922d16184bc25dfc9a5d/tool/endoflineblog.com/follow-up-to-gitflow-considered-harmful/README.md)

> **GitFlow's Mistakes**
>
> * It makes the project's history completely unreadable
> * The master/develop split is redundant
> * It's needlessly complex

### About `rebase`, `merge` and `cherry-pick`

* [StackOverflow: Git Cherry-pick vs Merge Workflow](http://stackoverflow.com/a/1241829/5262615)
* [Merging vs. Rebasing](https://dzone.com/articles/merging-vs-rebasing)

#### More about `merge`

* [Live to merge, merge to live...](http://blog.plasticscm.com/2010/11/live-to-merge-merge-to-live.html)

## Subtree vs Submodule

* [The power of Git subtree](https://developer.atlassian.com/blog/2015/05/the-power-of-git-subtree/)
* [Alternatives To Git Submodule: Git Subtree](http://blogs.atlassian.com/2013/05/alternatives-to-git-submodule-git-subtree/)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://aaronice.gitbook.io/study-notes/devops-and-tools/2016-06-05-git-version-control.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
