You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: github-git/fork-repo.md
+9-27Lines changed: 9 additions & 27 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -24,7 +24,7 @@ myst_html_meta:
24
24
---
25
25
26
26
(fork-repository)=
27
-
# How to Fork a GitHub Repository
27
+
# A Guide to Forks on GitHub Forks
28
28
29
29
30
30
:::{admonition} What You Will Learn
@@ -49,6 +49,8 @@ Forking a repository **creates a copy** in your GitHub account while keeping a l
49
49
When you fork a GitHub repository, you make a copy of the files and the commit history into your personal account. This allows you to work on the files independently before suggesting changes through a pull request to make to the parent repository you forked from.
50
50
:::
51
51
52
+
By forking, everyone collaborates on their own copies of the project, ensuring the original files stay intact. All changes are tracked in the file history and can be undone if needed. You can fork a repository directly from its main page on GitHub.com.
53
+
52
54
## How to fork a GitHub repository
53
55
54
56
To fork a GitHub repository:
@@ -74,22 +76,6 @@ The number next to the <kbd><i class="fa-solid fa-code-fork"></i> button tells y
74
76
To fork a repo, navigate to it on GitHub and click the **Fork** button. Your copy will appear under your account.
75
77
:::
76
78
77
-
### Setting up a pull request: base vs. head
78
-
79
-
When creating a **pull request (PR)**, you must define where your changes should be added and where they come from.
80
-
81
-
-**<iclass="fa-solid fa-database"style="color: #81c0aa;"></i> Base:** The repository where you want your changes to be merged. *(This is usually the original repo you forked.)*
82
-
-**<iclass="fa-solid fa-code-branch"style="color: #81c0aa;"></i> Head:** The repository containing your changes. *(This is your fork. The copy of the repo that you own, where you made edits.)*
83
-
84
-
> **🔹 Quick way to remember:** The **head** is "ahead" of the base, meaning it has new changes that the base repository does **not** yet have.
85
-
86
-
:::{todo}
87
-
88
-
/images/github/base-vs-head.png
89
-
:alt: "Diagram showing how base and head work in GitHub pull requests."
90
-
Create Graphic: Simple diagram with arrows from "Your Fork (Head)" → "Original Repo (Base)"
91
-
92
-
:::
93
79
94
80
:::{admonition} Who owns the repo?
95
81
@@ -101,7 +87,7 @@ Every GitHub repository has an **owner**, which can be:
101
87
The **owner’s username appears first in the URL**, showing who controls the repository.
102
88
103
89
**Example**:
104
-
- A personal repo: `https://github.com/lwasser/my-project`
90
+
- A personal repo: `https://github.com/your-gh-username/my-project`
105
91
- An organization-owned repo: `https://github.com/pyOpenSci/repo-name`
106
92
107
93
If you **fork a repo**, your GitHub username becomes the owner of the fork:
@@ -110,6 +96,7 @@ If you **fork a repo**, your GitHub username becomes the owner of the fork:
110
96
111
97
:::
112
98
99
+
113
100
## What happens after you fork a repo?
114
101
115
102
Your fork **is a separate copy**, but it remains linked to the original repository.
@@ -125,7 +112,7 @@ Your fork **is a separate copy**, but it remains linked to the original reposito
125
112
::::{todo}
126
113
/images/github/fork-structure.png
127
114
:alt: "Diagram showing how forking creates a personal copy linked to the original."
128
-
# [Graphic Suggestion: A simple diagram showing "Original Repo → Fork → Your Account".]
115
+
Graphic: A simple diagram showing "Original Repo → Fork → Your Account".
129
116
::::
130
117
131
118
@@ -141,16 +128,16 @@ To sync a GitHub fork:
141
128
:::{todo}
142
129
/images/github/sync-fork.png
143
130
:alt: "GitHub interface showing how to sync a fork with the original repo."
144
-
# [Graphic Suggestion: Screenshot of GitHub’s "Sync Fork" button.]
131
+
Graphi: Screenshot of GitHub’s "Sync Fork" button
145
132
:::
146
133
147
134
---
148
135
149
136
## Takeaways
150
137
151
138
✅ **Forking creates a personal copy of a repository** that you can edit freely.
152
-
✅ **Your fork stays linked** to the original, allowing you to propose changes.
153
-
✅ **Sync your fork regularly** to keep it up to date.
139
+
✅ **Your fork stays linked** to the original repo, allowing you to propose changes.
140
+
✅ **Sync your fork regularly** to keep it up to date if you plan to contribute to the repo more over time.
154
141
155
142
:::{admonition} Next steps
156
143
:class: important
@@ -159,8 +146,3 @@ Now that you’ve forked a repository, the next step is to **edit a file and com
159
146
[Learn how to edit and commit files →](edit-commit-files)
Copy file name to clipboardExpand all lines: github-git/identify-issue.md
+73-34Lines changed: 73 additions & 34 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -24,7 +24,7 @@ myst_html_meta:
24
24
25
25
Contributing to an open source project starts with identifying an issue to work on. Open issues help developers track bugs, new features, or needed improvements in a repository. Whether you have a specific fix in mind or are looking for ideas, exploring existing issues is the best place to start.
26
26
27
-
As discussed in the [get to know a repo lesson](labels-responsive), the way issues are labeled and organized can both help you find issues that maintianers want help with and also tell you a lot about a project. If you see
27
+
As discussed in the [get to know a repo lesson](labels-responsive), the way issues are labeled and organized can both help you find issues that maintainers want help with and also tell you a lot about a project. If you see
28
28
beginner-friendly labels like **"good first issue"** or **"help wanted,"** it's a clear signal that the maintainers welcome new contributors. Further those might be good issues for you to start working on!
@@ -37,24 +37,43 @@ new contributors to work on during these events.
37
37
38
38
This lesson guides you through **finding or creating an issue** in a repository you don’t own.
39
39
40
+
## How to find an issue to work on
40
41
41
-
## Start by scanning existing project issues
42
+
Generally, when you start contributing, there are two pathways: 1) you already have an issue in mind that you want to work on, or 2) you don't know what you want to work on yet; you'd like to see what the project needs first. Regardless of the pathway that you take, you'll want to remember two things:
42
43
43
-
When contributing to a new open source project, the best place to start is by **scanning open issues**. This helps you find tasks maintainers need help with and ensures you don’t duplicate existing work.
44
+
1. You always want to search for existing issues before opening a new one
45
+
2. You want to link the work you do in a pull request back to the issue you worked on.
44
46
47
+
Both steps above make it easier for maintainers to keep their list of issues organized and to close issues as they are addressed.
45
48
46
-
### 1. You already have identified an issue
49
+
> **<iclass="fa-solid fa-magnifying-glass"style="color: #81c0aa;"></i> Social cue:**
50
+
> Regardless of your pathway, you'll spend some time searching through issues. You want to demonstrate your willingness to put in effort before raising an issue.
51
+
> Showing that you’ve already searched first is a great way to show goodwill to maintainers.
47
52
48
-
Sometimes, while using a project or reading its documentation, you notice a bug, typo, or improvement. Before starting to work on it, check if the issue **already exists** in the repository.
53
+
Below, you'll learn how to navigate both pathways.
49
54
50
-
-**If the issue exists**, leave a comment to let others know you're interested in working on it.
55
+
### 1. You already have identified an issue that you want to work on
51
56
57
+
Sometimes, while using a project or reading its documentation, you notice a bug, typo, or improvement. Before starting to work on it, check if the issue **already exists** in the repository.
52
58
59
+
-**If the issue exists**, leave a comment to let others know you're interested in working on it.
60
+
53
61
Your comment might look like this:
54
62
55
-
> Hey maintainer team 👋. I’d like to work on this issue. Is there anything specific I should consider before getting started?
63
+
> Hey, maintainer team 👋. I’d like to work on this issue. Is there anything specific I should consider before getting started?
64
+
65
+
-**If it doesn’t exist**, you can [create a new one](create-issue) (*see below*).
66
+
67
+
68
+
### Tips for effectively searching through GitHub issues
69
+
70
+
Before opening a **new** issue, check whether the problem has already been raised by searching through both **open** and **closed** issues. When searching, consider the following:
71
+
72
+
-**<iclass="fa-solid fa-keyboard"style="color: #81c0aa;"></i> Use relevant keywords**: Search for terms related to the problem, including specific error messages, function names, or terms like documentation, typos, etc.
73
+
-**<iclass="fa-solid fa-file-circle-xmark"style="color: #81c0aa;"></i> Check closed issues**: Sometimes, an issue has already been discussed and resolved—or maintainers may have decided not to address it.
74
+
So be sure to scan both open and closed issues returned in a search.
75
+
-**<iclass="fa-solid fa-code"style="color: #81c0aa;"></i> Search using symbols or variable names**: Searching for specific variable names or function signatures can help find related discussions if the issue is related to code.
56
76
57
-
If the issue you identified doesn't exist yet, you can create a new one. You will learn how to do that below.
58
77
59
78
> **<iclass="fa-solid fa-handshake-angle"style="color: #81c0aa;"></i> Social Cue:** Opening an issue (or commenting on an existing one) helps maintainers track who is working on what and prevents duplicate work. It also ensures the issue can be properly closed once your pull request is merged. A PR without an issue might catch maintainers off guard, so confirming before starting makes collaboration smoother.
60
79
@@ -63,18 +82,31 @@ If the issue you identified doesn't exist yet, you can create a new one. You wil
63
82
64
83
If you don’t have a specific issue in mind, explore the **open issues** list to find something that interests you. A great place to start is by looking for labels like **"good first issue"** or **"help wanted"**—these are beginner-friendly and often well-scoped.
65
84
66
-
-**Start small**—fixing typos, improving documentation, or tackling minor bugs are great first contributions.
85
+
-**Start small**—fixing typos, improving documentation, or tackling minor bugs are great first contributions. The better scoped your issue is, the easier it will be for you to complete the work and get it merged.
67
86
-**Leave a comment** on the issue to let maintainers know you'd like to help.
68
-
69
-
:::{tip}
70
-
Leaving comments in a new repository can feel intimidating, but most
87
+
88
+
> **<iclass="fa-regular fa-clock"style="color: #81c0aa;"></i> Social cue:** Leaving comments in a new repository can feel intimidating, but most
71
89
maintainers appreciate respectful communication and enthusiasm. If a project
72
90
isn’t open to contributions, they will let you know—and there are plenty of
73
-
other projects to explore!
74
-
:::
91
+
other projects to explore!
75
92
76
-
(create-issue)=
93
+
### How to know if an issue is available to work on
94
+
95
+
Even if you find an open issue that interests you, it’s important to check if someone is already working on it.
77
96
97
+
-**<iclass="fa-solid fa-comments"style="color: #81c0aa;"></i> Look for comments from other contributors**:
98
+
Check if someone has already offered to take on the issue.
99
+
-**<iclass="fa-solid fa-clock-rotate-left"style="color: #81c0aa;"></i> Check the timestamps**:
100
+
The issue may still be available if someone commented months ago but never submitted a fix.
101
+
-**<iclass="fa-solid fa-circle-question"style="color: #81c0aa;"></i> If in doubt, ask!**
102
+
Leaving a comment like *"Is this issue still open for contributions?"* can clarify things.
103
+
104
+
> **<iclass="fa-solid fa-hourglass-half"style="color: #81c0aa;"></i> Social cue:**
105
+
> Just because someone expressed interest in an issue doesn’t always mean they are actively working on it.
106
+
> If the last comment is old, the contributor may have moved on. Asking politely shows respect for their effort.
107
+
108
+
109
+
(create-issue)=
78
110
## How to create a new issue
79
111
80
112
If an issue doesn’t already exist for the thing you'd like to work on, here’s how to create a new one:
@@ -86,11 +118,24 @@ If an issue doesn’t already exist for the thing you'd like to work on, here’
86
118
Some projects use templates for reporting **bugs, documentation fixes, or new features**. If a template is available, fill it out—it helps maintainers quickly understand your issue.
87
119
:::
88
120
89
-
4. Create a **clear title** summarizing what you’d like to fix.
90
-
5. Be **specific about what you'd like to fix**:
91
-
- Explain the problem or fix you’re proposing.
92
-
- For **bugs**, include steps to reproduce the issue.
93
-
- For **documentation**, link to the page and describe what you’d like to update or enhance.
121
+
3. Create a **clear title** summarizing what you’d like to fix.
122
+
123
+
:::{admonition} Examples of Good vs. Less Useful Issue Titles
|| Add: update docstring in the `function_name_here()` function.| Update documentation. |
128
+
|| Fix: Typo in the documentation page for `doc-page-here`. | Fix formatting. |
129
+
|| Fix: Bug in `xxx` module that causes `x, y, z` to happen. | This feature is broken. |
130
+
|| Update the `module_name.py` module with a clearer docstring. | Bad UI, please fix. |
131
+
:::
132
+
133
+
4. Be **specific about what you'd like to fix**:
134
+
* Ideally, the issue that you want to address focuses on one thing and isn't too broad.
135
+
* Explain the problem or fix you’re proposing.
136
+
* For **code bugs**: include steps to reproduce the issue; also describe what you expected would happen, and what actually happened when you ran the code.
137
+
* For **documentation**: link to the page and describe what you’d like to update or enhance.
138
+
* For **new features**: describe what will happen once it is implemented
94
139
95
140
:::{figure} /images/github/open-issue.gif
96
141
:alt: alt text here
@@ -102,24 +147,18 @@ Some projects use templates for reporting **bugs, documentation fixes, or new fe
102
147
103
148
Maintainers are often volunteers, so the more information you provide, the easier it is for them to support you. A well-crafted issue saves time and helps get faster responses.
104
149
105
-
**<iclass="fa-solid fa-magnifying-glass"style="color: #6ec9c3;"></i> Social Cue:** Before submitting the issue, ask yourself:
106
-
* Could someone unfamiliar with the project understand this issue?
107
-
* Did I provide enough detail for a maintainer to respond without extra questions?
150
+
>**<iclass="fa-solid fa-magnifying-glass"style="color: #6ec9c3;"></i> Social Cue:** Before submitting the issue, ask yourself:
151
+
>* Could someone unfamiliar with the project understand this issue?
152
+
>* Did I provide enough detail for a maintainer to respond without extra questions?
| Add: update docstring in the `function_name_here()` function.| Update documentation. |
115
-
| Fix: Typo in the documentation page for `doc-page-here`. | Fix formatting. |
116
-
| Fix: Bug in `xxx` module that causes `x, y, z` to happen. | This feature is broken. |
117
-
| Update the `module_name.py` module with a clearer docstring. | Bad UI, please fix. |
118
-
119
-
120
155
> **<iclass="fa-solid fa-user-tag"style="color: #6ec9c3;"></i> Social Cue:** For smaller projects, tagging a maintainer can help get feedback faster. However, check contributor guidelines first to see if this is encouraged. Example:
121
-
> `@maintainer-name, I'd love to help with this! Let me know if there's anything I should consider before starting.`
156
+
> `@maintainer-name, I'd love to help with this! Let me know if there's anything I should consider before starting.`
122
157
158
+
159
+
:::{todo}
160
+
Add section on issue templates, how they work, what they are
0 commit comments