diff --git a/contributing-guides/git-terminal.md b/contributing-guides/git-terminal.md index 243761faf..3d573eb82 100644 --- a/contributing-guides/git-terminal.md +++ b/contributing-guides/git-terminal.md @@ -1,3 +1,5 @@ +# Opening a Pull Request + Most people submit pull requests to the tldr-pages project [using GitHub's web interface][pr-howto]. @@ -29,3 +31,57 @@ Typically a pull request will include changes in a single file. [pr-howto]: ../CONTRIBUTING.md#submitting-a-pull-request [commit-msg]: ../CONTRIBUTING.md#commit-message [mass-changes]: https://github.com/tldr-pages/tldr/pulls?&q=is:pr+is:merged+label:"mass+changes" + +# Updating your fork + +Forks of GitHub repositories aren't updated automatically. To keep your fork up-to-date with the latest changes and avoid merge conflicts, you should update it regularly. + +There are two ways to update your fork. + +1. Via the GitHub web interface. Click `Fetch upstream` and then `Fetch and merge` on the fork as shown below: + +![Fetch and merge button in GitHub](../images/github-fetch-and-merge-button.png). + +2. Using Git in the terminal: + +```bash +git checkout main +git remote add upstream https://github.com/tldr-pages/tldr.git # only run if you don't already have the upstream remote (check with "git remote -v") +git fetch upstream main +git rebase upstream/main # in case you have any merge conflicts, click the link below to see how to resolve them +git push --force-with-lease # not needed if you only want to update your local repository +``` +[How to resolve merge conficts](https://docs.github.com/en/github/collaborating-with-pull-requests/addressing-merge-conflicts/resolving-a-merge-conflict-using-the-command-line) + +# Changing the email of your last commit + +If the email that you used for the last commit isn't associated with your GitHub account, you can either add it [here](https://github.com/settings/emails) or change the email of the commit with the following commands: + +```bash +git commit --amend --author="Your Name " +git push --force-with-lease +``` + +# Changing the email of any commit(s) + +Let's take this commit history as an example: + +| Commit Hash | Author Email +|---|--- +| A | wrong@example.org +| B | correct@example.org +| C | correct@example.org +| D | wrong@example.org +| E | correct@example.org +| F (HEAD) | correct@example.org + +To change the email of commts A and D, run + +```bash +git reset A +git commit --amend --author="Your Name " +git cherry-pick B^..D # re-apply commits B to D +git commit --amend --author="Your Name " +git cherry-pick E^..HEAD +git push --force-with-lease +``` diff --git a/images/github-fetch-and-merge-button.png b/images/github-fetch-and-merge-button.png new file mode 100644 index 000000000..5e60d1ee4 Binary files /dev/null and b/images/github-fetch-and-merge-button.png differ