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: docs/Resource Hub/Talon Installation/downloading-community.md
+24Lines changed: 24 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -96,3 +96,27 @@ git clone https://github.com/talonhub/community community
96
96
cd %AppData%\Talon\user
97
97
git clone https://github.com/talonhub/community community
98
98
```
99
+
100
+
### Managing Custom Changes and Contributing to the Main Repository Using Git
101
+
102
+
If you continue to use Talon for an extended period, you will most likely want to make changes to your configuration. In order to facilitate the integration of changes in the community repository with your own changes, it is strongly recommended to use Git for managing your changes. However, doing so requires more knowledge about Git than can be reasonably explained in a short guide like this. The [Pro Git](https://git-scm.com/book/en/v2) site is an excellent resource to learn about intermediate and advanced Git usage.
103
+
104
+
#### Putting Custom Changes Onto Their Own Branch
105
+
106
+
To manage your custom changes while keeping up with upstream updates, it is advisable to create a personal branch for your modifications:
107
+
108
+
1. After cloning the repository, create and switch to a new branch (e.g. `git checkout -b custom`).
109
+
2. If you make changes, commit them to this branch. Try to avoid creating commits that bunch together unrelated changes.
110
+
3. At regular intervals, fetch changes from the upstream repository and merge the main branch into your custom branch. This may result in merge conflicts that then need to be resolved. The [upgrade-knausj script](https://github.com/pokey/upgrade-knausj) may help facilitate the process of merging changes.
111
+
4. If you do not mind other people looking at your local changes, create a fork of the community repository on GitHub, add it as a second remote to your local working copy, and push your custom branch there.
112
+
113
+
#### Using Git Worktrees and Cherry-Picking to Contribute to the Upstream Repository
114
+
115
+
If you have made changes to your setup that could improve the experience for a wide range of users, you may want to share these changes with the wider community. If you have followed the recipe in the preceding section, Git makes it easy to create pull requests for your changes. One solution that is used by several regular contributors to `community` relies on Git worktrees and cherry-picking:
116
+
117
+
1. Create a worktree for the upstream repository: `git worktree add <some folder outside the talon user directory>/talonhub-community origin/main`.
118
+
2. In the worktree, create a new branch for your PR: `git checkout -b feature-branch`.
119
+
3. Cherry-pick your desired commits from your custom branch: `git cherry-pick <commit-hash>`.
120
+
4. Push the branch to your fork on GitHub and create a pull request to the upstream repository.
121
+
122
+
The reason why this setup works so well is that the worktree setup above and the primary worktree in the Talon user directory are part of the same local repository and share all of the references.
0 commit comments