├── .github ├── dependabot.yml ├── steps │ ├── -step.txt │ ├── 0-welcome.md │ ├── 1-create-a-pr.md │ ├── 2-resolve-a-merge-conflict.md │ ├── 3-create-your-own-conflict.md │ ├── 4-merge-your-pull-request.md │ └── X-finish.md └── workflows │ ├── 0-welcome.yml │ ├── 1-create-a-pr.yml │ ├── 2-resolve-a-merge-conflict.yml │ ├── 3-create-your-own-conflict.yml │ └── 4-merge-your-pull-request.yml ├── .gitignore ├── LICENSE ├── README.md └── resume.md /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | updates: 3 | - package-ecosystem: "github-actions" 4 | directory: "/" 5 | schedule: 6 | interval: "monthly" 7 | -------------------------------------------------------------------------------- /.github/steps/-step.txt: -------------------------------------------------------------------------------- 1 | 0 2 | -------------------------------------------------------------------------------- /.github/steps/0-welcome.md: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /.github/steps/1-create-a-pr.md: -------------------------------------------------------------------------------- 1 | 8 | 9 | ## Step 1: Create a pull request 10 | 11 | _Welcome to "Managing Merge Conflicts"! :wave:_ 12 | 13 | **What is a _merge conflict_?**: A **merge conflict** occurs when changes are made to the same part of the same file on two different branches. You usually find out about conflicts in a pull request so let's start by creating one. 14 | 15 | ### :keyboard: Activity: Create a pull request 16 | 17 | 1. Open a new browser tab, and work on the steps in your second tab while you read the instructions in this tab. 18 | 1. We made a small change to a file in the repository in the `my-resume` branch. 19 | 1. [Create a pull request](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request) setting `my-resume` as the head branch and `main` as the base branch. You can enter `Resolving merge conflicts` for the pull request title and body. 20 | 1. Wait about 20 seconds then refresh this page (the one you're following instructions from). [GitHub Actions](https://docs.github.com/en/actions) will automatically update to the next step. 21 | -------------------------------------------------------------------------------- /.github/steps/2-resolve-a-merge-conflict.md: -------------------------------------------------------------------------------- 1 | 6 | 7 | ## Step 2: Resolve a merge conflict 8 | 9 | _Good start! Now let's look deeper at a merge conflict! :mag:_ 10 | 11 | This can be intimidating, but have no fear, Git is smart when it comes to merging! Git only needs a human to decide how to [resolve the conflict](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts/resolving-a-merge-conflict-using-the-command-line). Sometimes, the best way to resolve a merge conflict is to add content that's from both branches, or even something that isn't on either! This is why Git needs a human to look at the code and make the proper fixes. 12 | 13 | ### :keyboard: Activity: Resolve a merge conflict 14 | 15 | 1. Open the pull request that you just created, we created a conflict for you. Have no fear! 16 | 1. At the bottom of the page, under "This branch has conflicts that must be resolved", click the **Resolve conflicts** button. 17 | 1. Look for the highlighted sections that begins with `<<<<<<< my-resume` and ends with `>>>>>>> main`. These markers are added by Git to show you the content that is in conflict. 18 | 1. Remove the changes made on the main branch by deleting all of the content below the `=======` and above `>>>>>>> main`. 19 | 1. Next, remove the merge conflict markers by deleting the following lines: 20 | ``` 21 | <<<<<<< my-resume 22 | ======= 23 | >>>>>>> main 24 | ``` 25 | 1. With the merge conflict markers removed, click **Mark as resolved**. 26 | 1. Finally, click **Commit merge**. 27 | 1. Wait about 20 seconds then refresh this page (the one you're following instructions from). [GitHub Actions](https://docs.github.com/en/actions) will automatically update to the next step. 28 | -------------------------------------------------------------------------------- /.github/steps/3-create-your-own-conflict.md: -------------------------------------------------------------------------------- 1 | 6 | 7 | ## Step 3: Create your own conflict 8 | 9 | _Good job! You've solved a merge conflict! :tada:_ 10 | 11 | Resolving a conflict doesn't automatically merge the pull request in GitHub. Instead, it stores the resolution of the conflict in a merge commit and allows you and your team to keep working. To resolve a conflict, GitHub performs what is known as a _reverse merge_. This means that the changes from the `main` branch were merged into your `my-resume` branch. With a reverse merge, only the `my-resume` branch is updated. This allows you to test the resolved changes on your branch before you merge it into `main`. 12 | 13 | Now, let's get a little evil. (It's for educational purposes!) 14 | 15 | ### :keyboard: Activity: Create your own conflict 16 | 17 | We went ahead and added a new file called `references.md` and pushed that change to `main`, without updating your `my-resume` branch. 18 | 19 | 1. Browse to the `my-resume` branch. 20 | 1. Click the `Add file` dropdown menu and then on `Create new file`. 21 | 1. Create a file named `references.md`. 22 | 1. Enter some text that conflicts with what we added for `references.md` in the `main` branch. 23 | 1. Scroll to the bottom of the page and enter a commit message for your change. 24 | 1. Click the **Commit new file** button, making sure the "Commit directly to the `my-resume` branch" option is selected. 25 | 1. Wait about 20 seconds then refresh this page (the one you're following instructions from). [GitHub Actions](https://docs.github.com/en/actions) will automatically update to the next step. 26 | -------------------------------------------------------------------------------- /.github/steps/4-merge-your-pull-request.md: -------------------------------------------------------------------------------- 1 | 6 | 7 | ## Step 4: Merge your pull request 8 | 9 | _Almost there! :heart:_ 10 | 11 | You can now [merge](https://docs.github.com/en/get-started/quickstart/github-glossary#merge) your pull request! 12 | 13 | ### :keyboard: Activity: Merge your pull request 14 | 15 | 1. First, resolve any remaining conflicts in your pull request. 16 | > Look back at step one if you need help. 17 | 1. Click **Merge pull request**. 18 | 1. Delete the branch `my-resume` (optional). 19 | 1. Wait about 20 seconds then refresh this page (the one you're following instructions from). [GitHub Actions](https://docs.github.com/en/actions) will automatically update to the next step. 20 | -------------------------------------------------------------------------------- /.github/steps/X-finish.md: -------------------------------------------------------------------------------- 1 | 5 | 6 | ## Finish 7 | 8 | _Congratulations friend, you've completed this course!_ 9 | 10 | celebrate 11 | 12 | Here's a recap of all the tasks you've accomplished in your repository: 13 | 14 | - You learned why merge conflicts happen. 15 | - You resolved a simple merge conflict. 16 | - You created a merge conflict, and resolved it! 17 | 18 | ### What's next? 19 | 20 | - Make your own Markdown resume site with GitHub Pages! Learn how in our [GitHub Pages](https://github.com/skills/github-pages) course. 21 | - We'd love to hear what you thought of this course [in our discussion board](https://github.com/orgs/skills/discussions/categories/resolve-merge-conflicts). 22 | - [Take another GitHub Skills course](https://github.com/skills). 23 | - [Read the GitHub Getting Started docs](https://docs.github.com/en/get-started). 24 | - To find projects to contribute to, check out [GitHub Explore](https://github.com/explore). 25 | -------------------------------------------------------------------------------- /.github/workflows/0-welcome.yml: -------------------------------------------------------------------------------- 1 | name: Step 0, Welcome 2 | 3 | # This step triggers after the learner creates a new repository from the template. 4 | # This workflow updates from step 0 to step 1. 5 | 6 | # This will run every time we create push a commit to `main`. 7 | # Reference: https://docs.github.com/en/actions/learn-github-actions/events-that-trigger-workflows 8 | on: 9 | workflow_dispatch: 10 | push: 11 | branches: 12 | - main 13 | 14 | # Reference: https://docs.github.com/en/actions/security-guides/automatic-token-authentication 15 | permissions: 16 | # Need `contents: read` to checkout the repository. 17 | # Need `contents: write` to update the step metadata. 18 | contents: write 19 | 20 | jobs: 21 | # Get the current step to only run the main job when the learner is on the same step. 22 | get_current_step: 23 | name: Check current step number 24 | runs-on: ubuntu-latest 25 | steps: 26 | - name: Checkout 27 | uses: actions/checkout@v4 28 | - id: get_step 29 | run: | 30 | echo "current_step=$(cat ./.github/steps/-step.txt)" >> $GITHUB_OUTPUT 31 | outputs: 32 | current_step: ${{ steps.get_step.outputs.current_step }} 33 | 34 | on_start: 35 | name: On start 36 | needs: get_current_step 37 | 38 | # We will only run this action when: 39 | # 1. This repository isn't the template repository. 40 | # 2. The step is currently 0. 41 | # Reference: https://docs.github.com/en/actions/learn-github-actions/contexts 42 | # Reference: https://docs.github.com/en/actions/learn-github-actions/expressions 43 | if: >- 44 | ${{ !github.event.repository.is_template 45 | && needs.get_current_step.outputs.current_step == 0 }} 46 | 47 | # We'll run Ubuntu for performance instead of Mac or Windows. 48 | runs-on: ubuntu-latest 49 | 50 | steps: 51 | # We'll need to check out the repository so that we can edit the README. 52 | - name: Checkout 53 | uses: actions/checkout@v4 54 | with: 55 | fetch-depth: 0 # Let's get all the branches. 56 | 57 | - name: Prepare a branch 58 | run: | 59 | echo "Make sure we are on step 0" 60 | if [ "$(cat .github/steps/-step.txt)" != 0 ] 61 | then 62 | echo "Current step is not 0" 63 | exit 0 64 | fi 65 | 66 | echo "Make a branch" 67 | BRANCH=my-resume 68 | git checkout -b $BRANCH 69 | 70 | echo "Update resume.md" 71 | sed -i.bak 's/Experience/Job History/' resume.md 72 | 73 | echo "Make a commit" 74 | git config user.name github-actions[bot] 75 | git config user.email github-actions[bot]@users.noreply.github.com 76 | git add resume.md 77 | git commit --message="Update resume.md in my-resume" 78 | 79 | echo "Push" 80 | git push --set-upstream origin $BRANCH 81 | env: 82 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 83 | 84 | # In README.md, switch step 0 for step 1. 85 | - name: Update to step 1 86 | uses: skills/action-update-step@v2 87 | with: 88 | token: ${{ secrets.GITHUB_TOKEN }} 89 | from_step: 0 90 | to_step: 1 91 | branch_name: my-resume 92 | -------------------------------------------------------------------------------- /.github/workflows/1-create-a-pr.yml: -------------------------------------------------------------------------------- 1 | name: Step 1, Create a pull request 2 | 3 | # This step triggers after the learner creates a pull request for the my-resume branch 4 | # This workflow updates from step 1 to step 2. 5 | 6 | # This will run every time we open a pull request. 7 | # Reference: https://docs.github.com/en/actions/learn-github-actions/events-that-trigger-workflows 8 | on: 9 | workflow_dispatch: 10 | pull_request: 11 | types: [opened] 12 | 13 | # Reference: https://docs.github.com/en/actions/security-guides/automatic-token-authentication 14 | permissions: 15 | # Need `contents: read` to checkout the repository. 16 | # Need `contents: write` to update the step metadata. 17 | contents: write 18 | 19 | jobs: 20 | # Get the current step to only run the main job when the learner is on the same step. 21 | get_current_step: 22 | name: Check current step number 23 | runs-on: ubuntu-latest 24 | steps: 25 | - name: Checkout 26 | uses: actions/checkout@v4 27 | - id: get_step 28 | run: | 29 | echo "current_step=$(cat ./.github/steps/-step.txt)" >> $GITHUB_OUTPUT 30 | outputs: 31 | current_step: ${{ steps.get_step.outputs.current_step }} 32 | 33 | on_create_pr: 34 | name: On create PR 35 | needs: get_current_step 36 | 37 | # We will only run this action when: 38 | # 1. This repository isn't the template repository. 39 | # 2. The step is currently 1. 40 | # Reference: https://docs.github.com/en/actions/learn-github-actions/contexts 41 | # Reference: https://docs.github.com/en/actions/learn-github-actions/expressions 42 | if: >- 43 | ${{ !github.event.repository.is_template 44 | && needs.get_current_step.outputs.current_step == 1 }} 45 | 46 | # We'll run Ubuntu for performance instead of Mac or Windows. 47 | runs-on: ubuntu-latest 48 | 49 | steps: 50 | # We'll need to check out the repository so that we can edit the README. 51 | - name: Checkout 52 | uses: actions/checkout@v4 53 | with: 54 | fetch-depth: 0 # Let's get all the branches. 55 | 56 | - name: Prepare a merge conflict 57 | run: | 58 | echo "Make sure we are on step 1" 59 | if [ "$(cat .github/steps/-step.txt)" != 1 ] 60 | then 61 | echo "Current step is not 1" 62 | exit 0 63 | fi 64 | 65 | echo "Manually update step in my-resume to match step in main branch" 66 | git checkout my-resume 67 | git config user.name github-actions[bot] 68 | git config user.email github-actions[bot]@users.noreply.github.com 69 | sed -i.bak 's/1/2/' .github/steps/-step.txt 70 | git add .github/steps/-step.txt 71 | git commit --message="Update step in my-resume" 72 | echo "Push" 73 | git push origin my-resume 74 | 75 | echo "Create a merge conflict in main" 76 | git checkout main 77 | sed -i.bak 's/Experience/Jobs/' resume.md 78 | git add resume.md 79 | git commit --message="Update resume.md in main" 80 | 81 | echo "Push" 82 | git push origin main 83 | env: 84 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 85 | 86 | # In README.md, switch step 1 for step 2. 87 | - name: Update to step 2 88 | uses: skills/action-update-step@v2 89 | with: 90 | token: ${{ secrets.GITHUB_TOKEN }} 91 | from_step: 1 92 | to_step: 2 93 | branch_name: my-resume 94 | -------------------------------------------------------------------------------- /.github/workflows/2-resolve-a-merge-conflict.yml: -------------------------------------------------------------------------------- 1 | name: Step 2, Resolve a merge conflict 2 | 3 | # This step triggers after the user resolves the merge conflict. 4 | # This workflow updates from step 2 to step 3. 5 | 6 | # This will run every time we push to `my-resume` (this will be a merge commit 7 | # since the user is resolving a merge conflict) 8 | # Reference: https://docs.github.com/en/actions/learn-github-actions/events-that-trigger-workflows 9 | on: 10 | workflow_dispatch: 11 | push: 12 | branches: 13 | - my-resume 14 | 15 | # Reference: https://docs.github.com/en/actions/security-guides/automatic-token-authentication 16 | permissions: 17 | # Need `contents: read` to checkout the repository. 18 | # Need `contents: write` to update the step metadata. 19 | contents: write 20 | 21 | jobs: 22 | # Get the current step to only run the main job when the learner is on the same step. 23 | get_current_step: 24 | name: Check current step number 25 | runs-on: ubuntu-latest 26 | steps: 27 | - name: Checkout 28 | uses: actions/checkout@v4 29 | - id: get_step 30 | run: | 31 | echo "current_step=$(cat ./.github/steps/-step.txt)" >> $GITHUB_OUTPUT 32 | outputs: 33 | current_step: ${{ steps.get_step.outputs.current_step }} 34 | 35 | on_resolve_merge_conflict: 36 | name: On resolve merge conflict 37 | needs: get_current_step 38 | 39 | # We will only run this action when: 40 | # 1. This repository isn't the template repository. 41 | # 2. The step is currently 2. 42 | # Reference: https://docs.github.com/en/actions/learn-github-actions/contexts 43 | # Reference: https://docs.github.com/en/actions/learn-github-actions/expressions 44 | if: >- 45 | ${{ !github.event.repository.is_template 46 | && needs.get_current_step.outputs.current_step == 2 }} 47 | 48 | # We'll run Ubuntu for performance instead of Mac or Windows. 49 | runs-on: ubuntu-latest 50 | 51 | steps: 52 | # We'll need to check out the repository so that we can edit the README. 53 | - name: Checkout 54 | uses: actions/checkout@v4 55 | with: 56 | fetch-depth: 0 # Let's get all the branches. 57 | ref: my-resume 58 | 59 | - name: Create and push a new file on main 60 | run: | 61 | echo "Make sure we are on step 2" 62 | if [ "$(cat .github/steps/-step.txt)" != 2 ] 63 | then 64 | echo "Current step is not 2" 65 | exit 0 66 | fi 67 | 68 | echo "Checkout main" 69 | git checkout main 70 | 71 | echo "Create new file" 72 | printf "# References\n\n* octocat 1 😈" >> references.md 73 | 74 | echo "Commit file" 75 | git config user.name github-actions[bot] 76 | git config user.email github-actions[bot]@users.noreply.github.com 77 | git add references.md 78 | git commit --message="Add references.md" 79 | 80 | echo "Push" 81 | git push 82 | env: 83 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 84 | 85 | # In README.md, switch step 2 for step 3. 86 | - name: Update to step 3 87 | uses: skills/action-update-step@v2 88 | with: 89 | token: ${{ secrets.GITHUB_TOKEN }} 90 | from_step: 2 91 | to_step: 3 92 | branch_name: my-resume 93 | -------------------------------------------------------------------------------- /.github/workflows/3-create-your-own-conflict.yml: -------------------------------------------------------------------------------- 1 | name: Step 3, Create your own conflict 2 | 3 | # This step triggers after the user creates `references.md` in the `my-resume` branch. 4 | # This workflow updates from step 3 to step 4. 5 | 6 | # This will run every time we push to the `reference.md` file in the `my-resume` branch. 7 | # Reference: https://docs.github.com/en/actions/learn-github-actions/events-that-trigger-workflows 8 | on: 9 | workflow_dispatch: 10 | push: 11 | branches: 12 | - my-resume 13 | paths: 14 | - "references.md" 15 | 16 | # Reference: https://docs.github.com/en/actions/security-guides/automatic-token-authentication 17 | permissions: 18 | # Need `contents: read` to checkout the repository. 19 | # Need `contents: write` to update the step metadata. 20 | contents: write 21 | 22 | jobs: 23 | # Get the current step to only run the main job when the learner is on the same step. 24 | get_current_step: 25 | name: Check current step number 26 | runs-on: ubuntu-latest 27 | steps: 28 | - name: Checkout 29 | uses: actions/checkout@v4 30 | - id: get_step 31 | run: | 32 | echo "current_step=$(cat ./.github/steps/-step.txt)" >> $GITHUB_OUTPUT 33 | outputs: 34 | current_step: ${{ steps.get_step.outputs.current_step }} 35 | 36 | on_create_references_md: 37 | name: On create references.md 38 | needs: get_current_step 39 | 40 | # We will only run this action when: 41 | # 1. This repository isn't the template repository. 42 | # 2. The step is currently 3. 43 | # Reference: https://docs.github.com/en/actions/learn-github-actions/contexts 44 | # Reference: https://docs.github.com/en/actions/learn-github-actions/expressions 45 | if: >- 46 | ${{ !github.event.repository.is_template 47 | && needs.get_current_step.outputs.current_step == 3 }} 48 | 49 | # We'll run Ubuntu for performance instead of Mac or Windows. 50 | runs-on: ubuntu-latest 51 | 52 | steps: 53 | # We'll need to check out the repository so that we can edit the README. 54 | - name: Checkout 55 | uses: actions/checkout@v4 56 | with: 57 | fetch-depth: 0 # Let's get all the branches. 58 | ref: my-resume 59 | 60 | # In README.md, switch step 2 for step 3. 61 | - name: Update to step 4 62 | uses: skills/action-update-step@v2 63 | with: 64 | token: ${{ secrets.GITHUB_TOKEN }} 65 | from_step: 3 66 | to_step: 4 67 | branch_name: my-resume 68 | -------------------------------------------------------------------------------- /.github/workflows/4-merge-your-pull-request.yml: -------------------------------------------------------------------------------- 1 | name: Step 4, Merge your pull request 2 | 3 | # This step triggers after a pull requst is merged to `main`. 4 | # This workflow updates from step 4 to step X. 5 | 6 | # This will run every time we create push a commit to `main`. 7 | # Reference: https://docs.github.com/en/actions/learn-github-actions/events-that-trigger-workflows 8 | on: 9 | workflow_dispatch: 10 | push: 11 | branches: 12 | - main 13 | 14 | # Reference: https://docs.github.com/en/actions/security-guides/automatic-token-authentication 15 | permissions: 16 | # Need `contents: read` to checkout the repository. 17 | # Need `contents: write` to update the step metadata. 18 | contents: write 19 | 20 | jobs: 21 | # Get the current step to only run the main job when the learner is on the same step. 22 | get_current_step: 23 | name: Check current step number 24 | runs-on: ubuntu-latest 25 | steps: 26 | - name: Checkout 27 | uses: actions/checkout@v4 28 | - id: get_step 29 | run: | 30 | echo "current_step=$(cat ./.github/steps/-step.txt)" >> $GITHUB_OUTPUT 31 | outputs: 32 | current_step: ${{ steps.get_step.outputs.current_step }} 33 | 34 | on_merge: 35 | name: On merge 36 | needs: get_current_step 37 | 38 | # We will only run this action when: 39 | # 1. This repository isn't the template repository. 40 | # 2. The step is currently 4. 41 | # Reference: https://docs.github.com/en/actions/learn-github-actions/contexts 42 | # Reference: https://docs.github.com/en/actions/learn-github-actions/expressions 43 | if: >- 44 | ${{ !github.event.repository.is_template 45 | && needs.get_current_step.outputs.current_step == 4 }} 46 | 47 | # We'll run Ubuntu for performance instead of Mac or Windows. 48 | runs-on: ubuntu-latest 49 | 50 | steps: 51 | # We'll need to check out the repository so that we can edit the README. 52 | - name: Checkout 53 | uses: actions/checkout@v4 54 | with: 55 | fetch-depth: 0 # Let's get all the branches. 56 | 57 | # In README.md, switch step 3 for step X. 58 | - name: Update to step X 59 | uses: skills/action-update-step@v2 60 | with: 61 | token: ${{ secrets.GITHUB_TOKEN }} 62 | from_step: 4 63 | to_step: X 64 | branch_name: my-resume 65 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Compiled source # 2 | ################### 3 | *.com 4 | *.class 5 | *.dll 6 | *.exe 7 | *.o 8 | *.so 9 | 10 | # Packages # 11 | ############ 12 | # it's better to unpack these files and commit the raw source 13 | # git has its own built in compression methods 14 | *.7z 15 | *.dmg 16 | *.gz 17 | *.iso 18 | *.jar 19 | *.rar 20 | *.tar 21 | *.zip 22 | 23 | # Logs and databases # 24 | ###################### 25 | *.log 26 | *.sql 27 | *.sqlite 28 | 29 | # OS generated files # 30 | ###################### 31 | .DS_Store 32 | .DS_Store? 33 | ._* 34 | .Spotlight-V100 35 | .Trashes 36 | ehthumbs.db 37 | Thumbs.db 38 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) GitHub, Inc. 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 4 | 5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 6 | 7 | THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 8 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |
2 | 3 | 9 | 10 | # Resolve merge conflicts 11 | 12 | _Learn why conflicts happen and how to resolve them._ 13 | 14 |
15 | 16 | 21 | 22 | ## Welcome 23 | 24 | Merge conflicts happen when two people make changes to the same file on GitHub—a common occurrence when you’re working with others. While resolving differences might involve some discussion, merge conflicts don’t have to be scary. This course guides you through the steps to finding the best merge conflict solution, so your team can keep building. 25 | 26 | - **Who is this for**: New developers, new GitHub users, users new to Git, students, managers, teams. 27 | - **What you'll learn**: What merge conflicts are, how you resolve merge conflicts, how to reduce merge conflicts. 28 | - **What you'll build**: We'll work with a short Markdown resume file in this course. 29 | - **Prerequisites**: We recommend taking [Introduction to GitHub](https://github.com/skills/introduction-to-github) prior to this course. 30 | - **How long**: This course takes less than 30 minutes to complete. 31 | 32 | In this course, you will: 33 | 34 | 1. Create a pull request 35 | 2. Resolve a merge conflict 36 | 3. Create a merge conflict 37 | 4. Merge your pull request 38 | 39 | ### How to start this course 40 | 41 | 51 | 52 | [![start-course](https://user-images.githubusercontent.com/1221423/235727646-4a590299-ffe5-480d-8cd5-8194ea184546.svg)](https://github.com/new?template_owner=skills&template_name=resolve-merge-conflicts&owner=%40me&name=skills-resolve-merge-conflicts&description=My+clone+repository&visibility=public) 53 | 54 | 1. Right-click **Start course** and open the link in a new tab. 55 | 2. In the new tab, most of the prompts will automatically fill in for you. 56 | - For owner, choose your personal account or an organization to host the repository. 57 | - We recommend creating a public repository, as private repositories will [use Actions minutes](https://docs.github.com/en/billing/managing-billing-for-github-actions/about-billing-for-github-actions). 58 | - Scroll down and click the **Create repository** button at the bottom of the form. 59 | 3. After your new repository is created, wait about 20 seconds, then refresh the page. Follow the step-by-step instructions in the new repository's README. 60 | 61 | 75 | -------------------------------------------------------------------------------- /resume.md: -------------------------------------------------------------------------------- 1 | # GitHub Teacher 2 | 3 | Charting the knowledge of the Internet, just like Galileo charted the stars. 4 | 5 | ## Experience 6 | 7 | ### GitHub Trainer 8 | 9 | Teach all things Git, give away all the stickers, ensure world peace. 10 | 11 | ### Supportocat 12 | 13 | Provide world class support to customers on the GitHub platform 14 | 15 | ## Skills 16 | 17 | ### Education 18 | 19 | Developed and maintained various conference talks, online training, and in-person trainings covering various topics including Git, GitHub, and Open Source. 20 | 21 | ### Leadership 22 | 23 | Managed multiple asynchronous teams in the development, maintenance, and release of various web applications and websites. 24 | --------------------------------------------------------------------------------