git-terminal.md: add commands to update a fork and change email (#5956)

beep
marchersimon 2021-06-29 19:00:13 +02:00 committed by GitHub
parent d86d3d6206
commit f2ebffb9c6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 56 additions and 0 deletions

View File

@ -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 <new.email@example.com>"
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 <correct@example.org>"
git cherry-pick B^..D # re-apply commits B to D
git commit --amend --author="Your Name <correct@example.org>"
git cherry-pick E^..HEAD
git push --force-with-lease
```

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB