{"title":"Sprint quickstart guide","version":"6.0","locale":"id","docname":"internals/contributing/sprint-quickstart","url":"/id/6.0/internals/contributing/sprint-quickstart/","canonical":"https://djangodocs.dev/id/6.0/internals/contributing/sprint-quickstart/","summary":"This document explains how to prepare to contribute to Django. It is intended for use during sprints, or by people who are already familiar with contributing to…","html":"<h1>Sprint quickstart guide<a class=\"heading-anchor\" href=\"#sprint-quickstart-guide\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<p>This document explains how to prepare to contribute to Django. It is intended\nfor use during sprints, or by people who are already familiar with contributing\nto Python open source projects.</p>\n<p>This guide assumes you're familiar with:</p>\n<ul class=\"simple\">\n<li><p>Git (see <a class=\"reference internal\" href=\"/id/6.0/internals/contributing/writing-code/working-with-git/\"><span class=\"doc\">Bekerja dengan Git dan GitHub</span></a>)</p></li>\n<li><p>Managing multiple versions of Python</p></li>\n<li><p>Python dependency management, including virtual environments</p></li>\n<li><p>The concept of running tests and building documentation</p></li>\n</ul>\n<p>If any of these are unfamiliar, see <a class=\"reference internal\" href=\"/id/6.0/intro/contributing/\"><span class=\"doc\">Writing your first contribution for Django</span></a> for a longer,\nstep-by-step tutorial.</p>\n<section id=\"set-up\">\n<h2>Set up<a class=\"heading-anchor\" href=\"#set-up\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<ol class=\"arabic\">\n<li><p>Fork the repository on GitHub, clone your fork to your machine, and\nconfigure a remote reference to Django's upstream repository:</p>\n<div class=\"console\" data-console><div class=\"console-panel\" data-platform=\"unix\"><p class=\"console-label\" id=\"console-0-unix-label\">Linux / macOS</p><div class=\"code-block\" data-language=\"console\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Shell code\"><code><span class=\"gp\">$ </span>git<span class=\"w\"> </span>clone<span class=\"w\"> </span>https://github.com/YourGitHubName/django.git\n<span class=\"gp\">$ </span><span class=\"nb\">cd</span><span class=\"w\"> </span>django\n<span class=\"gp\">$ </span>git<span class=\"w\"> </span>remote<span class=\"w\"> </span>add<span class=\"w\"> </span>upstream<span class=\"w\"> </span>https://github.com/django/django.git\n</code></pre></div>\n</div><div class=\"console-panel\" data-platform=\"windows\"><p class=\"console-label\" id=\"console-0-windows-label\">Windows</p><div class=\"code-block\" data-language=\"doscon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Windows</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Windows shell\"><code><span class=\"gp\">...\\&gt;</span> git clone https://github.com/YourGitHubName/django.git\n<span class=\"gp\">...\\&gt;</span> <span class=\"k\">cd</span> django\n<span class=\"gp\">...\\&gt;</span> git remote add upstream https://github.com/django/django.git\n</code></pre></div></div></div>\n</li>\n<li><p>Confirm you're using a <a class=\"reference internal\" href=\"/id/6.0/faq/install/#faq-python-version-support\"><span class=\"std std-ref\">compatible version of Python</span></a>, then set up a virtual environment:</p>\n<div class=\"code-block\" data-language=\"shell\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Shell code\"><code>$<span class=\"w\"> </span><span class=\"c1\"># This needs to be &gt;= 3.12</span>\n$<span class=\"w\"> </span>python<span class=\"w\"> </span>-V\n$<span class=\"w\"> </span>python<span class=\"w\"> </span>-m<span class=\"w\"> </span>venv<span class=\"w\"> </span>~/.virtualenvs/djangodev\n$<span class=\"w\"> </span><span class=\"nb\">source</span><span class=\"w\"> </span>~/.virtualenvs/djangodev/bin/activate\n</code></pre></div>\n<p>If you are not using a Unix-like system, see the <a class=\"reference internal\" href=\"/id/6.0/intro/contributing/#intro-contributing-install-local-copy\"><span class=\"std std-ref\">platform-specific\ninstructions</span></a>.</p>\n</li>\n<li><p>Install the dependencies to run the tests and build the documentation:</p>\n<div class=\"console\" data-console><div class=\"console-panel\" data-platform=\"unix\"><p class=\"console-label\" id=\"console-1-unix-label\">Linux / macOS</p><div class=\"code-block\" data-language=\"console\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Shell code\"><code><span class=\"gp\">$ </span>python<span class=\"w\"> </span>-m<span class=\"w\"> </span>pip<span class=\"w\"> </span>install<span class=\"w\"> </span>-U<span class=\"w\"> </span>pip\n<span class=\"gp\">$ </span>python<span class=\"w\"> </span>-m<span class=\"w\"> </span>pip<span class=\"w\"> </span>install<span class=\"w\"> </span>-e<span class=\"w\"> </span>.<span class=\"w\"> </span>-r<span class=\"w\"> </span>tests/requirements/py3.txt<span class=\"w\"> </span>-r<span class=\"w\"> </span>docs/requirements.txt\n</code></pre></div>\n</div><div class=\"console-panel\" data-platform=\"windows\"><p class=\"console-label\" id=\"console-1-windows-label\">Windows</p><div class=\"code-block\" data-language=\"doscon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Windows</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Windows shell\"><code><span class=\"gp\">...\\&gt;</span> py -m pip install -U pip\n<span class=\"gp\">...\\&gt;</span> py -m pip install -e . -r tests\\requirements\\py3.txt -r docs\\requirements.txt\n</code></pre></div></div></div>\n</li>\n<li><p>Install pre-commit hooks so that formatting and linting run automatically\nbefore each commit:</p>\n<div class=\"console\" data-console><div class=\"console-panel\" data-platform=\"unix\"><p class=\"console-label\" id=\"console-2-unix-label\">Linux / macOS</p><div class=\"code-block\" data-language=\"console\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Shell code\"><code><span class=\"gp\">$ </span>python<span class=\"w\"> </span>-m<span class=\"w\"> </span>pip<span class=\"w\"> </span>install<span class=\"w\"> </span>pre-commit\n<span class=\"gp\">$ </span>pre-commit<span class=\"w\"> </span>install\n</code></pre></div>\n</div><div class=\"console-panel\" data-platform=\"windows\"><p class=\"console-label\" id=\"console-2-windows-label\">Windows</p><div class=\"code-block\" data-language=\"doscon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Windows</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Windows shell\"><code><span class=\"gp\">...\\&gt;</span> py -m pip install pre-commit\n<span class=\"gp\">...\\&gt;</span> pre-commit install\n</code></pre></div></div></div>\n<p>See <a class=\"reference internal\" href=\"/id/6.0/internals/contributing/writing-code/coding-style/#coding-style-pre-commit\"><span class=\"std std-ref\">Pemeriksaan pra-komitmen</span></a> for further details.</p>\n</li>\n<li><p>Run the tests:</p>\n<div class=\"console\" data-console><div class=\"console-panel\" data-platform=\"unix\"><p class=\"console-label\" id=\"console-3-unix-label\">Linux / macOS</p><div class=\"code-block\" data-language=\"console\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Shell code\"><code><span class=\"gp\">$ </span>./tests/runtests.py\n</code></pre></div>\n</div><div class=\"console-panel\" data-platform=\"windows\"><p class=\"console-label\" id=\"console-3-windows-label\">Windows</p><div class=\"code-block\" data-language=\"doscon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Windows</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Windows shell\"><code><span class=\"gp\">...\\&gt;</span> tests\\runtests.py\n</code></pre></div></div></div>\n<p>See <a class=\"reference internal\" href=\"/id/6.0/internals/contributing/writing-code/unit-tests/#running-unit-tests\"><span class=\"std std-ref\">Menjalankan satuan percobaan</span></a> for more information. While tests will all\npass in CI, they may not on every person's local environment. For example,\nthe test suite is only guaranteed to pass on the latest point release of\neach supported Python version. It's possible you may encounter errors using\nan earlier point release.</p>\n<p>If you have a small number of failures, it may be worth investigating\nwhether they are known issues, or using the <a class=\"reference internal\" href=\"/id/6.0/internals/contributing/writing-code/unit-tests/#running-tests-docker-box\"><span class=\"std std-ref\">django-docker-box</span></a> project to run the tests. Since this is a\nsprint, it may be more valuable for you to work on the issue at hand rather\nthan investigating a weird machine configuration problem. Make a note of the\nfailing tests before you start, so you can tell whether a later failure was\ncaused by your changes.</p>\n</li>\n<li><p>Build the documentation:</p>\n<div class=\"console\" data-console><div class=\"console-panel\" data-platform=\"unix\"><p class=\"console-label\" id=\"console-4-unix-label\">Linux / macOS</p><div class=\"code-block\" data-language=\"console\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Shell code\"><code><span class=\"gp\">$ </span><span class=\"nb\">cd</span><span class=\"w\"> </span>docs<span class=\"w\"> </span><span class=\"o\">&amp;&amp;</span><span class=\"w\"> </span>make<span class=\"w\"> </span>html<span class=\"w\"> </span><span class=\"o\">&amp;&amp;</span><span class=\"w\"> </span><span class=\"nb\">cd</span><span class=\"w\"> </span>..\n</code></pre></div>\n</div><div class=\"console-panel\" data-platform=\"windows\"><p class=\"console-label\" id=\"console-4-windows-label\">Windows</p><div class=\"code-block\" data-language=\"doscon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Windows</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Windows shell\"><code><span class=\"gp\">...\\&gt;</span> <span class=\"k\">cd</span> docs <span class=\"p\">&amp;&amp;</span> make.bat html <span class=\"p\">&amp;&amp;</span> <span class=\"k\">cd</span> ..\n</code></pre></div></div></div>\n</li>\n</ol>\n</section>\n<section id=\"finding-a-ticket-to-work-on\">\n<h2>Finding a ticket to work on<a class=\"heading-anchor\" href=\"#finding-a-ticket-to-work-on\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Finding a workable ticket is a challenging task. It's important to read this\nsection before attempting to do so.</p>\n<section id=\"assessing-tickets\">\n<h3>Assessing tickets<a class=\"heading-anchor\" href=\"#assessing-tickets\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>When looking over tickets, it's a good idea to keep your search to <a class=\"reference external\" href=\"https://code.djangoproject.com/query?stage=Accepted&amp;status=assigned&amp;status=new&amp;time=5+years+ago..today&amp;order=id&amp;desc=1&amp;col=id&amp;col=summary&amp;col=owner&amp;col=type&amp;col=component&amp;col=time&amp;col=changetime\">accepted\ntickets created in the last five years</a>. Older tickets are old for a reason:\nthey are usually still open because they are hard, contentious, or both.\nYou're welcome to try one, but expect it to require a high degree of\nperseverance.</p>\n<p>Consider using the component filter option in Trac to limit your search to\nareas you have used before. If you've used forms in a few Django apps, consider\nfiltering down to the forms component. Similarly, if you've never worked with\ngeospatial projects, it's probably wise to avoid <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.gis</span></code>. For\nexample, here are the <a class=\"reference external\" href=\"https://code.djangoproject.com/query?component=Documentation&amp;stage=Accepted&amp;status=assigned&amp;status=new&amp;time=5+years+ago..today&amp;order=id&amp;desc=1&amp;col=id&amp;col=summary&amp;col=owner&amp;col=type&amp;col=component&amp;col=time&amp;col=changetime\">tickets for the documentation component</a>.</p>\n</section>\n<section id=\"methods-to-find-tickets\">\n<h3>Methods to find tickets<a class=\"heading-anchor\" href=\"#methods-to-find-tickets\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>There are two recommended ways to find a ticket:</p>\n<ul class=\"simple\">\n<li><p>Look at the <a class=\"reference external\" href=\"https://code.djangoproject.com/query?easy=1&amp;stage=Accepted&amp;status=assigned&amp;status=new&amp;time=5+years+ago..today&amp;order=id&amp;desc=1&amp;col=id&amp;col=summary&amp;col=owner&amp;col=type&amp;col=component&amp;col=time&amp;col=changetime\">easy pickings</a>.</p></li>\n<li><p>Use the <a class=\"reference external\" href=\"https://youtube.com/shorts/D6QHet5U82U?si=j5M6sy0ufpeGy_iZ\">vulture method</a>.</p></li>\n</ul>\n<p>The vulture method is the process of looking for accepted tickets that haven't\nbeen touched in six months or longer. The ideal ticket has a PR linked to it\nthat has a code review with explicit requests for changes and the author has\nnot responded in at least six months on the PR and on the ticket. Before taking\none over, leave a comment on both the ticket and the PR letting the author know\nthat you are continuing their work.</p>\n<p>You can view the list of <a class=\"reference external\" href=\"https://code.djangoproject.com/query?stage=Accepted&amp;changetime=5+years+ago..6+months+ago&amp;needs_better_patch=1&amp;status=assigned&amp;status=new&amp;time=5+years+ago..today&amp;order=id&amp;desc=1&amp;col=id&amp;col=summary&amp;col=time&amp;col=changetime&amp;col=needs_better_patch&amp;col=owner&amp;col=type&amp;col=component\">possibly vulture-able tickets here</a>. The filters\nthat are applied are:</p>\n<ul class=\"simple\">\n<li><p>Triage stage = Accepted</p></li>\n<li><p>Patch needs improvement = Yes</p></li>\n<li><p>Created = between <code class=\"docutils literal notranslate\"><span class=\"pre\">5</span> <span class=\"pre\">years</span> <span class=\"pre\">ago</span></code> and <code class=\"docutils literal notranslate\"><span class=\"pre\">today</span></code></p></li>\n<li><p>Modified = between <code class=\"docutils literal notranslate\"><span class=\"pre\">5</span> <span class=\"pre\">years</span> <span class=\"pre\">ago</span></code> and <code class=\"docutils literal notranslate\"><span class=\"pre\">6</span> <span class=\"pre\">months</span> <span class=\"pre\">ago</span></code></p></li>\n</ul>\n</section>\n<section id=\"claiming-a-ticket\">\n<h3>Claiming a ticket<a class=\"heading-anchor\" href=\"#claiming-a-ticket\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>When you find a ticket, make yourself the owner by clicking the &quot;Modify Ticket&quot;\nbutton near the bottom of the page, selecting the &quot;assign to&quot; radio button in\nthe &quot;Action&quot; section, and clicking &quot;Submit changes&quot;. Your username will be\nfilled in the text box by default. See <a class=\"reference internal\" href=\"/id/6.0/internals/contributing/writing-code/submitting-patches/#claiming-tickets\"><span class=\"std std-ref\">Tiket &quot;Meminta&quot;</span></a> for the full\ndocumentation.</p>\n</section>\n</section>\n<section id=\"creating-a-branch-for-the-ticket\">\n<h2>Creating a branch for the ticket<a class=\"heading-anchor\" href=\"#creating-a-branch-for-the-ticket\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>How you create your branch depends on whether the ticket already has work\nattached to it.</p>\n<section id=\"starting-fresh\">\n<h3>Starting fresh<a class=\"heading-anchor\" href=\"#starting-fresh\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>With the ticket claimed, create a branch for your work, replacing\n<code class=\"docutils literal notranslate\"><span class=\"pre\">TicketNumber</span></code> with the actual Trac ticket number:</p>\n<div class=\"console\" data-console><div class=\"console-panel\" data-platform=\"unix\"><p class=\"console-label\" id=\"console-5-unix-label\">Linux / macOS</p><div class=\"code-block\" data-language=\"console\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Shell code\"><code><span class=\"gp\">$ </span>git<span class=\"w\"> </span>fetch<span class=\"w\"> </span>upstream\n<span class=\"gp\">$ </span>git<span class=\"w\"> </span>checkout<span class=\"w\"> </span>-b<span class=\"w\"> </span>ticket_TicketNumber<span class=\"w\"> </span>upstream/main\n</code></pre></div>\n</div><div class=\"console-panel\" data-platform=\"windows\"><p class=\"console-label\" id=\"console-5-windows-label\">Windows</p><div class=\"code-block\" data-language=\"doscon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Windows</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Windows shell\"><code><span class=\"gp\">...\\&gt;</span> git fetch upstream\n<span class=\"gp\">...\\&gt;</span> git checkout -b ticket_TicketNumber upstream/main\n</code></pre></div></div></div>\n<p>When your work is ready, push the branch to your fork and open a pull request.\nSee <a class=\"reference internal\" href=\"/id/6.0/internals/contributing/writing-code/submitting-patches/\"><span class=\"doc\">Mengajukan bantuan</span></a> for the full\nprocess.</p>\n</section>\n<section id=\"continuing-someone-else-s-work\">\n<h3>Continuing someone else's work<a class=\"heading-anchor\" href=\"#continuing-someone-else-s-work\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>If you're continuing the work from someone else's pull request on GitHub,\nthings can be tricky. You need to pull their branch, but then push it to your\nGitHub repository fork.</p>\n<p>Run the following, replacing <code class=\"docutils literal notranslate\"><span class=\"pre\">PRNumber</span></code> and <code class=\"docutils literal notranslate\"><span class=\"pre\">TicketNumber</span></code> with the actual\npull request and Trac ticket numbers:</p>\n<div class=\"console\" data-console><div class=\"console-panel\" data-platform=\"unix\"><p class=\"console-label\" id=\"console-6-unix-label\">Linux / macOS</p><div class=\"code-block\" data-language=\"console\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Shell code\"><code><span class=\"gp\">$ </span>git<span class=\"w\"> </span>fetch<span class=\"w\"> </span>upstream<span class=\"w\"> </span>pull/PRNumber/head:ticket_TicketNumber\n<span class=\"gp\">$ </span>git<span class=\"w\"> </span>checkout<span class=\"w\"> </span>ticket_TicketNumber\n<span class=\"gp\">$ </span>git<span class=\"w\"> </span>push<span class=\"w\"> </span>origin<span class=\"w\"> </span>ticket_TicketNumber\n</code></pre></div>\n</div><div class=\"console-panel\" data-platform=\"windows\"><p class=\"console-label\" id=\"console-6-windows-label\">Windows</p><div class=\"code-block\" data-language=\"doscon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Windows</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Windows shell\"><code><span class=\"gp\">...\\&gt;</span> git fetch upstream pull/PRNumber/head:ticket_TicketNumber\n<span class=\"gp\">...\\&gt;</span> git checkout ticket_TicketNumber\n<span class=\"gp\">...\\&gt;</span> git push origin ticket_TicketNumber\n</code></pre></div></div></div>\n<p>For example, to continue PR 8000 for ticket 123, run:</p>\n<div class=\"console\" data-console><div class=\"console-panel\" data-platform=\"unix\"><p class=\"console-label\" id=\"console-7-unix-label\">Linux / macOS</p><div class=\"code-block\" data-language=\"console\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Shell</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Shell code\"><code><span class=\"gp\">$ </span>git<span class=\"w\"> </span>fetch<span class=\"w\"> </span>upstream<span class=\"w\"> </span>pull/8000/head:ticket_123\n<span class=\"gp\">$ </span>git<span class=\"w\"> </span>checkout<span class=\"w\"> </span>ticket_123\n<span class=\"gp\">$ </span>git<span class=\"w\"> </span>push<span class=\"w\"> </span>origin<span class=\"w\"> </span>ticket_123\n</code></pre></div>\n</div><div class=\"console-panel\" data-platform=\"windows\"><p class=\"console-label\" id=\"console-7-windows-label\">Windows</p><div class=\"code-block\" data-language=\"doscon\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Windows</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Windows shell\"><code><span class=\"gp\">...\\&gt;</span> git fetch upstream pull/8000/head:ticket_123\n<span class=\"gp\">...\\&gt;</span> git checkout ticket_123\n<span class=\"gp\">...\\&gt;</span> git push origin ticket_123\n</code></pre></div></div></div>\n<p>When preparing your commit, please review our <a class=\"reference internal\" href=\"/id/6.0/internals/contributing/committing-code/#committing-guidelines\"><span class=\"std std-ref\">committing guidelines</span></a>, specifically how to credit co-authors.</p>\n</section>\n</section>","rootId":"sprint-quickstart-guide","toc":[{"title":"Set up","anchor":"set-up","children":[]},{"title":"Finding a ticket to work on","anchor":"finding-a-ticket-to-work-on","children":[{"title":"Assessing tickets","anchor":"assessing-tickets","children":[]},{"title":"Methods to find tickets","anchor":"methods-to-find-tickets","children":[]},{"title":"Claiming a ticket","anchor":"claiming-a-ticket","children":[]}]},{"title":"Creating a branch for the ticket","anchor":"creating-a-branch-for-the-ticket","children":[{"title":"Starting fresh","anchor":"starting-fresh","children":[]},{"title":"Continuing someone else's work","anchor":"continuing-someone-else-s-work","children":[]}]}],"breadcrumbs":[{"docname":"internals/index","title":"Dalam Django","url":"/id/6.0/internals/"},{"docname":"internals/contributing/index","title":"Membantu untuk Django","url":"/id/6.0/internals/contributing/"}],"prev":{"docname":"internals/contributing/new-contributors","title":"Saran untuk penyumbang baru","url":"/id/6.0/internals/contributing/new-contributors/"},"next":{"docname":"internals/contributing/writing-code/index","title":"Kode bantuan","url":"/id/6.0/internals/contributing/writing-code/"},"formats":{"html":"/id/6.0/internals/contributing/sprint-quickstart/","markdown":"/id/6.0/internals/contributing/sprint-quickstart.md","json":"/id/6.0/internals/contributing/sprint-quickstart.json"},"source":"https://github.com/django/django/blob/stable/6.0.x/docs/internals/contributing/sprint-quickstart.txt","official":"https://docs.djangoproject.com/id/6.0/internals/contributing/sprint-quickstart/","inVersions":["6.1","6.0"],"inLocales":["en","sv","zh-hans","ga","fr","ja","id","it","pt-br","ko","es","el","pl"]}