From 93090ee2d69a65cd43e910fe1904a77cc1da3947 Mon Sep 17 00:00:00 2001 From: Julie Kirsch Date: Mon, 4 Nov 2024 14:39:16 +0100 Subject: [PATCH 1/2] branches --- book/workflows/branches.md | 179 ++++++++-------------------- book/workflows/new_branch_github.md | 39 ++++++ book/workflows/new_branch_gitlab.md | 22 ++++ 3 files changed, 109 insertions(+), 131 deletions(-) create mode 100644 book/workflows/new_branch_github.md create mode 100644 book/workflows/new_branch_gitlab.md diff --git a/book/workflows/branches.md b/book/workflows/branches.md index 904f05d..11acdf2 100644 --- a/book/workflows/branches.md +++ b/book/workflows/branches.md @@ -21,66 +21,15 @@ The act of making a new branch from an existing one is called *branching*. Usual ``````{tab-item} ... GitLab -1. Navigate to the repository of your project. Under the project description, you should see a menu button with a "+" in it (see {numref}`new-branch-button`). Click this button, then click on "New branch". - -```{figure} ../images/gitlab-branch.png -:name: new-branch-button - -Click the highlighted button to make a new branch. +```{include} new_branch_gitlab.md ``` -2. A new page opens ({numref}`new-branch-menu`), on which you can specify the name of your branch and the source branch. Try to think of a good name for your branch. For example, `chapter-2` is a suitable name if we're going to be working on Chapter 2 of our book. After you've made sure that the selected source branch is correct, click "Create branch". - -```{figure} ../images/gitlab-branch-name.png -:name: new-branch-menu - -We're making a new branch called `chapter-2` from the `main` branch. -``` - -3. You should be sent back to an overview page of your repository. In the branch selection menu (see {numref}`new-branch-repo`), it should now say `chapter-2` instead of `main`. Here you can also select another existing branch which is what we previously called `selecting an existing version`. - -```{figure} ../images/gitlab-new-branch-repo.png -:name: new-branch-repo - -The circled menu is the branch selection menu. -``` `````` - ``````{tab-item} ... GitHub -How to branch is demonstrated in the figure below, all steps are elaborated on in the following step-by-step tutorial. - -```{figure} figures/branching-github-ezgif.com-optimize.gif ---- -name: branching_demo ---- -Demonstration, video available [here](https://youtu.be/3ceMSLQpD70) +```{include} new_branch_github.md ``` -1. Open the repository in which you want to work in. In the top bar you will see your current branch `main` and next to that there is a tab called `Branches`. - -
- Example Image -
- -2. Clicking on `Branches` will bring you to an overview of all the branches in the repository. Click on the green `Create Branch` button. - -
- Example Image -
- -3. Finally, give your branch a name and specifiy the source branch.
-Tip: It makes sense to give the branch a name related to the content you will be creating or altering. - -
- Example Image -
- -4. You will find your new branch in the drop down menu as seen on the figure below. You can then select your new branch and start working in it (new version) but you can also work in any other branch if you are helping out a colleague with their chapter for example (existing version). - -
- Example Image -
`````` ``````` `````````` @@ -103,11 +52,13 @@ If your repository is already cloned on your computer, you are almost ready to s ``````{tab-item} ... GitLab -1. Navigate to the repository of your book. Click on the blue button that says "Clone" ({numref}`gitlab-clone`), and copy the link under "Clone with SSH". +1. Navigate to the repository of your book. Click on the blue button that says "Clone", and copy the link under "Clone with SSH". + ```{figure} ../images/gitlab-clone.png -:name: gitlab-clone - +--- +name: gitlab-clone +--- The cloning menu. ``` `````` @@ -116,36 +67,50 @@ The cloning menu. 1. Open the repository that you would like to clone. In the top bar on the right, you will a green button called `<> Code`. -
- Example Image -
+```{figure} figures/NewBranch_GitHub.PNG +--- +name: NewBranch_GitHub1 +--- +Overview +``` 2. Clicking on the button will display the following screen. Make sure the option `SSH` is selected and copy the link. -
- Example Image -
-`````` +```{figure} figures/Clone_GitHub.PNG +--- +name: Clone_GitHub +--- +Clone using SSH +``` ``````{tab-item} ... GitHub through GitHub Desktop 1. Open the repository that you would like to clone. In the top bar on the right, you will a green button called `<> Code`. -
- Example Image -
+```{figure} figures/NewBranch_GitHub.PNG +--- +name: NewBranch_GitHub2 +--- +Overview +``` 2. Clicking on the button will display the following screen. Click on `Open with GitHub Desktop`. -
- Example Image -
+```{figure} figures/Clone_GitHub.PNG +--- +name: Clone_GitHub1 +--- +Clone using SSH +``` 3. The Browser should then automatically open GitHub Desktop. Customize the path to the location where you would like to save to files locally. Finally, click on `Clone`. -
- Example Image -
+```{figure} figures/CloneRepo_TroughGithubdesk.PNG +--- +name: CloneRepo_TroughGithubdesk.PNG +--- +Clone through GitHub Desktop +``` You have now directly cloned the repository, so you can skip the next step! `````` @@ -154,9 +119,10 @@ You have now directly cloned the repository, so you can skip the next step! **(b) ... and opening (cloning) the local repository with ...** ```````{tab-set} + ``````{tab-item} ... VS Code -1. Open a new VS Code window. You should be greeted with a welcome page ({numref}`vscode-welcome`). On this page, click "Clone Git Repository". Alternatively, open the Source Control menu from the left side bar, and click on "Clone Repository". +1. Open a new VS Code window. You should be greeted with a welcome page. On this page, click "Clone Git Repository". Alternatively, open the Source Control menu from the left side bar, and click on "Clone Repository". ```{figure} ../images/vscode-welcome.png :name: vscode-welcome @@ -197,71 +163,20 @@ Have a look at the other section!** **(a) by creating my own version (branching) or select an existing version (checkout branch) ...** -Although it is possible to create new branches in VS Code directly, creating new branches on the remote repository (on GitLab or GitHub) is better for collaborating because the new branch becomes immediately visible to everyone working in the repository as opposed to becoming visible after being pushed to the remote repository. +Although it is possible to create new branches in VS Code or GitHub Desktop directly, creating new branches on the remote repository (on GitLab or GitHub) is better for collaborating because the new branch becomes immediately visible to everyone working in the repository as opposed to becoming visible after being pushed/published to the remote repository. `````{tab-set} ````{tab-item} ... in GitLab -1. Navigate to the repository of your project. Under the project description, you should see a menu button with a "+" in it (see {numref}`new-branch-button`). Click this button, then click on "New branch". - -```{figure} ../images/gitlab-branch.png -:name: new-branch-button - -Click the highlighted button to make a new branch. +```{include} new_branch_gitlab.md ``` -2. A new page opens ({numref}`new-branch-menu`), on which you can specify the name of your branch and the source branch. Try to think of a good name for your branch. For example, `chapter-2` is a suitable name if we're going to be working on Chapter 2 of our book. After you've made sure that the selected source branch is correct, click "Create branch". - -```{figure} ../images/gitlab-branch-name.png -:name: new-branch-menu - -We're making a new branch called `chapter-2` from the `main` branch. -``` - -3. You should be sent back to an overview page of your repository. In the branch selection menu (see {numref}`new-branch-repo`), it should now say `chapter-2` instead of `main`. - -```{figure} ../images/gitlab-new-branch-repo.png -:name: new-branch-repo - -The circled menu is the branch selection menu. -``` ```` ````{tab-item} ... GitHub -How to branch is demonstrated in the figure below, followed by a step-by-step tutorial. - -```{figure} figures/branching-github-ezgif.com-optimize.gif ---- -name: branching_demo ---- -Demonstration, video available [here](https://youtu.be/3ceMSLQpD70) +```{include} new_branch_github.md ``` -1. Open the repository in which you want to work in. In the top bar you will see your current branch `main` and next to that there is a tab called `Branches`. - -
- Example Image -
- -2. Clicking on `Branches` will bring you to an overview of all the branches in the repository. Click on the green `Create Branch` button. - -
- Example Image -
- -3. Finally, give your branch a name and specifiy the source branch.
-Tip: It makes sense to give the branch a name related to the content you will be creating or altering. - -
- Example Image -
- -4. You will find your new branch in the drop down menu as seen on the figure below. You can then select your new branch and start working in it (new version). - -
- Example Image -
- ```` ````` @@ -279,14 +194,16 @@ In VS Code, open the branch menu from the bottom left (see {numref}`git-branch-m Check out the branch by simply clicking on it. Check that the branch is indeed checked out by looking at the branch menu button in the bottom left again; it should now say the name of your branch instead of `main` (in our case `chapter-2`). ```{figure} ../images/git-branch-menu-main.png -:name: git-branch-menu-main - +--- +name: git-branch-menu-main +--- Location of the branch menu. ``` ```{figure} ../images/git-branch-selection-menu.png -:name: git-branch-selection-menu - +--- +name: git-branch-selection-menu +--- The branch selection menu, where our new branch has shown up. From this menu you can also select (checkout in git terms) another existing branch. ``` diff --git a/book/workflows/new_branch_github.md b/book/workflows/new_branch_github.md new file mode 100644 index 0000000..1aef3ca --- /dev/null +++ b/book/workflows/new_branch_github.md @@ -0,0 +1,39 @@ +How to branch is demonstrated in the figure below, all steps are elaborated on in the following step-by-step tutorial. + +```{figure} figures/branching-github-ezgif.com-optimize.gif +--- +name: branching_demo +--- +Demonstration, video available [here](https://youtu.be/3ceMSLQpD70) +``` + +1. Open the repository in which you want to work in. In the top bar you will see your current branch `main` and next to that there is a tab called `Branches`. + +```{figure} figures/NewBranch_GitHub.PNG + +Overview +``` + +2. Clicking on `Branches` will bring you to an overview of all the branches in the repository. Click on the green `Create Branch` button. + +```{figure} figures/NewBranch_GitHub2.PNG + +Overview Branches +``` + +3. Finally, give your branch a name and specifiy the source branch.
+Tip: It makes sense to give the branch a name related to the content you will be creating or altering. + +```{figure} figures/NewBranch_GitHub3.PNG +--- +width: 60% +--- +New Branch +``` + +4. You will find your new branch in the drop down menu as seen on the figure below. You can then select your new branch and start working in it (new version) but you can also work in any other branch if you are helping out a colleague with their chapter for example (existing version). + +```{figure} figures/NewBranch_GitHub4.PNG + +Select New Branch +``` \ No newline at end of file diff --git a/book/workflows/new_branch_gitlab.md b/book/workflows/new_branch_gitlab.md new file mode 100644 index 0000000..154718d --- /dev/null +++ b/book/workflows/new_branch_gitlab.md @@ -0,0 +1,22 @@ +1. Navigate to the repository of your project. Under the project description, you should see a menu button with a "+" in it. Click this button, then click on "New branch". + +```{figure} ../images/gitlab-branch.png + +Click the highlighted button to make a new branch. +``` + +2. A new page opens, on which you can specify the name of your branch and the source branch. Try to think of a good name for your branch. For example, `chapter-2` is a suitable name if we're going to be working on Chapter 2 of our book. After you've made sure that the selected source branch is correct, click "Create branch". + +```{figure} ../images/gitlab-branch-name.png +--- +width: 80% +--- +We're making a new branch called `chapter-2` from the `main` branch. +``` + +3. You should be sent back to an overview page of your repository. In the branch selection menu, it should now say `chapter-2` instead of `main`. + +```{figure} ../images/gitlab-new-branch-repo.png + +The circled menu is the branch selection menu. +``` From a5159e02801eefd835a5c807bae5c6edd15693df Mon Sep 17 00:00:00 2001 From: Julie Kirsch Date: Tue, 5 Nov 2024 19:31:07 +0100 Subject: [PATCH 2/2] fixes --- .../figures/Merge_Request_GitLab.PNG | Bin 0 -> 49757 bytes book/workflows/merge_request.md | 20 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) create mode 100644 book/workflows/figures/Merge_Request_GitLab.PNG diff --git a/book/workflows/figures/Merge_Request_GitLab.PNG b/book/workflows/figures/Merge_Request_GitLab.PNG new file mode 100644 index 0000000000000000000000000000000000000000..b7bfaa351c32043b3475c82c83a9d7537bddcf72 GIT binary patch literal 49757 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 literal 0 HcmV?d00001 diff --git a/book/workflows/merge_request.md b/book/workflows/merge_request.md index 25cc607..e373da8 100644 --- a/book/workflows/merge_request.md +++ b/book/workflows/merge_request.md @@ -1,4 +1,4 @@ -# Reviewing and combine versions (merge / pull request, merging) +# Reviewing and combine versions (merge/pull request, merging) Merging a branch into the main branch is also good moment to let a team-member review the content. By assigning a colleague to review your branch you can check the quality of your new content. @@ -18,7 +18,7 @@ We're finished with our chapter, and now it's time to include all of our commits 3. You can now choose a source branch and a target branch. Since we want to merge our changes from `chapter-2` *into* `main`, `chapter-2` is the source branch and `main` is the target branch ({numref}`gitlab-merge-request`) . Once you've selected the correct branches, click "Compare branches and continue". ```{figure} ../images/gitlab-merge-request.png -:name: gitlab-merge-request +name: gitlab-merge-request Creating a new merge request to merge `chapter-2` into `main`. ``` @@ -26,22 +26,22 @@ Creating a new merge request to merge `chapter-2` into `main`. 4. On the next page, you can give your merge request a name, and provide a description of your changes ({numref}`gitlab-merge-request-description`). If somebody has to review your changes, you can add them in the "Reviewer menu". They will then be notified via email that they need to review your work. Finally, watch out for the option "Delete source branch when merge request is accepted". If you want to keep working on the same branch, even after your previous work has been merged, make sure you untick the box! Once everything is filled in, click "Create merge request". ```{figure} ../images/gitlab-merge-request-description.png -:name: gitlab-merge-request-description +name: gitlab-merge-request-description Example of a filled-in merge request. ``` 5. After clicking `create merge request` you should land on the following page. Here, you can track the merge request. Right after your request, GitLab will do some checks to see if you've tried to merge conflicting files. As you can see in the figure below the merge is blocked due to the conflicts. Click on 'Resolve conflicts`. -```{figure} ../figures/Merge_Request_GitLab.PNG -:name: gitlab-merge-request-conflict +```{figure} figures/Merge_Request_GitLab.PNG +name: gitlab-merge-request-conflict Example of a blocked merge. ``` -Clicking on 'Resolve conflicts`, will open the conflicted files in the text editor. There you can manually edit the files to the version you would like to retain. By clicking on `use ours` or `use theirs` you can select which version you would like to keep. +Clicking on `Resolve conflicts`, will open the conflicted files in the text editor. There you can manually edit the files to the version you would like to retain. Alternatively, by clicking on `use ours` or `use theirs` you can select which version you would like to keep. -```{figure} ../figures/Solve_Conflict.PNG -:name: gitlab-conflict +```{figure} figures/Solve_Conflict.PNG +name: gitlab-conflict Solving the conflict. ``` @@ -51,8 +51,8 @@ In case you have cloned the repositery you can also resolve the conflicts locall 6. On the page of our merge request ({numref}`gitlab-finished-merge-request`), we're greeted with some more information. On top, you can read the description we just provided when creating the merge request. We can also see an "Approve" button, which you may or may not see, depending on your repository rights. Next, we can see a green checkmark, with a "Merge" button. This is good news: our changes do not conflict with existing files on the `main` branch, and we can merge our changes directly by clicking the button (if applicable: only after somebody else approved the request). -```{figure} ../../images/gitlab-finished-merge-request.png -:name: gitlab-finished-merge-request +```{figure} ../images/gitlab-finished-merge-request.png +name: gitlab-finished-merge-request The finished merge request. ```