mirror of
https://github.com/LCTT/TranslateProject.git
synced 2025-01-07 22:11:09 +08:00
145 lines
5.3 KiB
Markdown
145 lines
5.3 KiB
Markdown
|
[#]: collector: (lujun9972)
|
|||
|
[#]: translator: ( )
|
|||
|
[#]: reviewer: ( )
|
|||
|
[#]: publisher: ( )
|
|||
|
[#]: url: ( )
|
|||
|
[#]: subject: (How to create a pull request in GitHub)
|
|||
|
[#]: via: (https://opensource.com/article/19/7/create-pull-request-github)
|
|||
|
[#]: author: (Kedar Vijay Kulkarni https://opensource.com/users/kkulkarnhttps://opensource.com/users/fontanahttps://opensource.com/users/mhanwellhttps://opensource.com/users/mysentimentshttps://opensource.com/users/greg-p)
|
|||
|
|
|||
|
How to create a pull request in GitHub
|
|||
|
======
|
|||
|
Learn how to fork a repo, make changes, and ask the maintainers to
|
|||
|
review and merge it.
|
|||
|
![a checklist for a team][1]
|
|||
|
|
|||
|
So, you know how to use git. You have a [GitHub][2] repo and can push to it. All is well. But how the heck do you contribute to other people's GitHub projects? That is what I wanted to know after I learned git and GitHub. In this article, I will explain how to fork a git repo, make changes, and submit a pull request.
|
|||
|
|
|||
|
When you want to work on a GitHub project, the first step is to fork a repo.
|
|||
|
|
|||
|
![Forking a GitHub repo][3]
|
|||
|
|
|||
|
Use [my demo repo][4] to try it out.
|
|||
|
|
|||
|
Once there, click on the **Fork** button in the top-right corner. This creates a new copy of my demo repo under your GitHub user account with a URL like:
|
|||
|
|
|||
|
|
|||
|
```
|
|||
|
`https://github.com/<YourUserName>/demo`
|
|||
|
```
|
|||
|
|
|||
|
The copy includes all the code, branches, and commits from the original repo.
|
|||
|
|
|||
|
Next, clone the repo by opening the terminal on your computer and running the command:
|
|||
|
|
|||
|
|
|||
|
```
|
|||
|
`git clone https://github.com/<YourUserName>/demo`
|
|||
|
```
|
|||
|
|
|||
|
Once the repo is cloned, you need to do two things:
|
|||
|
|
|||
|
1. Create a new branch by issuing the command:
|
|||
|
|
|||
|
|
|||
|
```
|
|||
|
`git checkout -b new_branch`
|
|||
|
```
|
|||
|
|
|||
|
2. Create a new remote for the upstream repo with the command:
|
|||
|
|
|||
|
|
|||
|
```
|
|||
|
`git remote add upstream https://github.com/kedark3/demo`
|
|||
|
```
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
In this case, "upstream repo" refers to the original repo you created your fork from.
|
|||
|
|
|||
|
Now you can make changes to the code. The following code creates a new branch, makes an arbitrary change, and pushes it to **new_branch**:
|
|||
|
|
|||
|
|
|||
|
```
|
|||
|
$ git checkout -b new_branch
|
|||
|
Switched to a new branch ‘new_branch’
|
|||
|
$ echo “some test file” > test
|
|||
|
$ cat test
|
|||
|
Some test file
|
|||
|
$ git status
|
|||
|
On branch new_branch
|
|||
|
No commits yet
|
|||
|
Untracked files:
|
|||
|
(use "git add <file>..." to include in what will be committed)
|
|||
|
test
|
|||
|
nothing added to commit but untracked files present (use "git add" to track)
|
|||
|
$ git add test
|
|||
|
$ git commit -S -m "Adding a test file to new_branch"
|
|||
|
[new_branch (root-commit) 4265ec8] Adding a test file to new_branch
|
|||
|
1 file changed, 1 insertion(+)
|
|||
|
create mode 100644 test
|
|||
|
$ git push -u origin new_branch
|
|||
|
Enumerating objects: 3, done.
|
|||
|
Counting objects: 100% (3/3), done.
|
|||
|
Writing objects: 100% (3/3), 918 bytes | 918.00 KiB/s, done.
|
|||
|
Total 3 (delta 0), reused 0 (delta 0)
|
|||
|
Remote: Create a pull request for ‘new_branch’ on GitHub by visiting:
|
|||
|
Remote: <http://github.com/example/Demo/pull/new/new\_branch>
|
|||
|
Remote:
|
|||
|
* [new branch] new_branch -> new_branch
|
|||
|
```
|
|||
|
|
|||
|
Once you push the changes to your repo, the **Compare & pull request** button will appear in GitHub.
|
|||
|
|
|||
|
![GitHub's Compare & Pull Request button][5]
|
|||
|
|
|||
|
Click it and you'll be taken to this screen:
|
|||
|
|
|||
|
![GitHub's Open pull request button][6]
|
|||
|
|
|||
|
Open a pull request by clicking the **Create pull request** button. This allows the repo's maintainers to review your contribution. From here, they can merge it if it is good, or they may ask you to make some changes.
|
|||
|
|
|||
|
### TLDR
|
|||
|
|
|||
|
In summary, if you want to contribute to a project, the simplest way is to:
|
|||
|
|
|||
|
1. Find a project you want to contribute to
|
|||
|
2. Fork it
|
|||
|
3. Clone it to your local system
|
|||
|
4. Make a new branch
|
|||
|
5. Make your changes
|
|||
|
6. Push it back to your repo
|
|||
|
7. Click the **Compare & pull request** button
|
|||
|
8. Click **Create pull request** to open a new pull request
|
|||
|
|
|||
|
|
|||
|
|
|||
|
If the reviewers ask for changes, repeat steps 5 and 6 to add more commits to your pull request.
|
|||
|
|
|||
|
Happy coding!
|
|||
|
|
|||
|
In a previous article , I discussed the complaints that have been leveled against GitHub during the...
|
|||
|
|
|||
|
Arfon Smith works at GitHub and is involved in a number of activities at the intersection of open...
|
|||
|
|
|||
|
--------------------------------------------------------------------------------
|
|||
|
|
|||
|
via: https://opensource.com/article/19/7/create-pull-request-github
|
|||
|
|
|||
|
作者:[Kedar Vijay Kulkarni][a]
|
|||
|
选题:[lujun9972][b]
|
|||
|
译者:[译者ID](https://github.com/译者ID)
|
|||
|
校对:[校对者ID](https://github.com/校对者ID)
|
|||
|
|
|||
|
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
|||
|
|
|||
|
[a]: https://opensource.com/users/kkulkarnhttps://opensource.com/users/fontanahttps://opensource.com/users/mhanwellhttps://opensource.com/users/mysentimentshttps://opensource.com/users/greg-p
|
|||
|
[b]: https://github.com/lujun9972
|
|||
|
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/checklist_hands_team_collaboration.png?itok=u82QepPk (a checklist for a team)
|
|||
|
[2]: https://github.com/
|
|||
|
[3]: https://opensource.com/sites/default/files/uploads/forkrepo.png (Forking a GitHub repo)
|
|||
|
[4]: https://github.com/kedark3/demo
|
|||
|
[5]: https://opensource.com/sites/default/files/uploads/compare-and-pull-request-button.png (GitHub's Compare & Pull Request button)
|
|||
|
[6]: https://opensource.com/sites/default/files/uploads/open-a-pull-request_crop.png (GitHub's Open pull request button)
|