Currently, Triangular Workflow can be configured, but there is no Documentation about it. A documentation is useful to keep configuration possibilities up-to-date. The new documentation file gittriangularworkflow explains how to configure a triangular workflow. Signed-off-by: Matthieu Moy <Matthieu.Moy@xxxxxxxxxxxxxxx> Signed-off-by: Jordan DE GEA <jordan.de-gea@xxxxxxxxxxxxxxxx> --- Documentation/Makefile | 1 + Documentation/gittriangularworkflow.txt | 120 ++++++++++++++++++++++++++++++++ 2 files changed, 121 insertions(+) create mode 100644 Documentation/gittriangularworkflow.txt diff --git a/Documentation/Makefile b/Documentation/Makefile index f6e288b..e9f6c80 100644 --- a/Documentation/Makefile +++ b/Documentation/Makefile @@ -34,6 +34,7 @@ MAN7_TXT += gitrevisions.txt MAN7_TXT += gittutorial-2.txt MAN7_TXT += gittutorial.txt MAN7_TXT += gitworkflows.txt +MAN7_TXT += gittriangularworkflow.txt MAN_TXT = $(MAN1_TXT) $(MAN5_TXT) $(MAN7_TXT) MAN_XML = $(patsubst %.txt,%.xml,$(MAN_TXT)) diff --git a/Documentation/gittriangularworkflow.txt b/Documentation/gittriangularworkflow.txt new file mode 100644 index 0000000..803eee3 --- /dev/null +++ b/Documentation/gittriangularworkflow.txt @@ -0,0 +1,120 @@ +gittriangularworkflow(7) +======================= + +NAME +---- +gittriangularworkflow - A tutorial about the configuration of a +Triangular Workflow + +SYNOPSIS +-------- +[verse] +git fetch +git remote +git config +Options in git-config: +- `remote.pushDefault` +- `branch.<branch>.pushRemote` +- `branch.<branch>.origin` + +DESCRIPTION +----------- + +Triangular Workflow (or Asymmetric Workflow) is a workflow which gives +the possibility to: + +- fetch (or pull) from a repository +- push to another repository + +In some projects, you don't have to push directly to the project but +have to suggest your commits to the maintainer (e.g. pull requests). +Using Triangular Workflow is a common way for these projects. + +This document attempts to help you configure a Triangular Workflow. +Here is an example of configuration: + +........................................ +------------ ----------- +| UPSTREAM | maintainer | ORIGIN | +| git/git |- - - - - - - -| me/git | +------------ ← ----------- + \ / + \ / + fetch↓\ /↑push + \ / + \ / + ------------- + | LOCAL | + ------------- +........................................ + +CREATE YOUR REPOSITORY +---------------------- +The first step is to create your own repository. To do that you can: + +- a. fork (e.g. GitHub) the main project (e.g git/git), or +- b. create an empty repository + +a. Fork the project +~~~~~~~~~~~~~~~~~~~ +Go to the repository of the project (e.g. git/git) you want +and fork it. + +b. Create from scratch +~~~~~~~~~~~~~~~~~~~~~~ +Create a repository on your prefered Git repository hosting service. + +Clone it +~~~~~~~~ +Clone your repository on your machine. + + +CONFIGURE BRANCHES +------------------ +In many projects, the branch `master` have to be pulled from +the main repository(e.g. git/git) and pushed to your repository +(e.g. me/git). + +Adding the main project remote +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Add a new remote (e.g. upstream): + +=================================== +`git remote add upstream <main_project_url>` +=================================== + +Pull from upstream by default +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +=================================== +`git config branch.master.remote upstream` +=================================== + + +Push to origin by default +~~~~~~~~~~~~~~~~~~~~~~~~~ + +=================================== +`git config branch.master.pushRemote origin` +=================================== + + +GET YOUR PROJECT UP TO DATE +--------------------------- + +Now that `branch.master.remote` and `branch.master.pushRemote` are +set, you can use the following commands to be up to date: +===================================== + * `git pull` + * `git push` +===================================== + + +SEE ALSO +-------- +linkgit:git-config[1] +linkgit:git-remote[1] +linkgit:git-fetch[1] + + + -- 2.7.4 (Apple Git-66) -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html