{"title":"Arbeta med Git och GitHub","version":"6.1","locale":"sv","docname":"internals/contributing/writing-code/working-with-git","url":"/sv/6.1/internals/contributing/writing-code/working-with-git/","canonical":"https://djangodocs.dev/sv/6.1/internals/contributing/writing-code/working-with-git/","summary":"This section explains how the community can contribute code to Django via pull requests. If you’re interested in how mergers handle them, see Hantering av pull…","html":"<h1>Arbeta med Git och GitHub<a class=\"heading-anchor\" href=\"#working-with-git-and-github\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<p>This section explains how the community can contribute code to Django via pull\nrequests. If you’re interested in how <a class=\"reference internal\" href=\"/sv/6.1/internals/organization/#mergers-team\"><span class=\"std std-ref\">mergers</span></a> handle\nthem, see <a class=\"reference internal\" href=\"/sv/6.1/internals/contributing/committing-code/#handling-pull-requests\"><span class=\"std std-ref\">Hantering av pull requests</span></a>.</p>\n<p>Nedan kommer vi att visa hur man skapar en GitHub pull request som innehåller ändringarna för Trac ticket #xxxxx. Genom att skapa en helt färdig pull request kommer du att göra granskarens jobb enklare, vilket innebär att ditt arbete är mer sannolikt att slås samman till Django.</p>\n<p>Du kan också ladda upp en traditionell patch till Trac, men det är mindre praktiskt för recensioner.</p>\n<section id=\"installing-git\">\n<h2>Installera Git<a class=\"heading-anchor\" href=\"#installing-git\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Django använder <a class=\"reference external\" href=\"https://git-scm.com/\">Git</a> för sin källkontroll. Du kan <a class=\"reference external\" href=\"https://git-scm.com/download\">ladda ner</a> Git, men det är ofta enklare att installera med ditt operativsystems pakethanterare.</p>\n<p>Djangos <a class=\"reference external\" href=\"https://github.com/django/django/\">Git repository</a> finns på <a class=\"reference external\" href=\"https://github.com/\">GitHub</a>, och det rekommenderas att du också arbetar med GitHub.</p>\n<p>När du har installerat Git är det första du ska göra att ange ditt namn och din e-postadress:</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>git<span class=\"w\"> </span>config<span class=\"w\"> </span>--global<span class=\"w\"> </span>user.name<span class=\"w\"> </span><span class=\"s2\">&quot;Your Real Name&quot;</span>\n$<span class=\"w\"> </span>git<span class=\"w\"> </span>config<span class=\"w\"> </span>--global<span class=\"w\"> </span>user.email<span class=\"w\"> </span><span class=\"s2\">&quot;you@email.com&quot;</span>\n</code></pre></div>\n<p>Observera att <code class=\"docutils literal notranslate\"><span class=\"pre\">user.name</span></code> ska vara ditt riktiga namn, inte ditt GitHub-nick. GitHub bör känna till den e-postadress du använder i fältet <code class=\"docutils literal notranslate\"><span class=\"pre\">user.email</span></code>, eftersom detta kommer att användas för att associera dina åtaganden med ditt GitHub-konto.</p>\n</section>\n<section id=\"setting-up-local-repository\">\n<h2>Konfigurera lokalt arkiv<a class=\"heading-anchor\" href=\"#setting-up-local-repository\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>När du har skapat ditt GitHub-konto, med nick ”GitHub_nick”, och <a class=\"reference external\" href=\"https://github.com/django/django/fork\">forkat Djangos arkiv</a>, skapar du en lokal kopia av din fork:</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>git<span class=\"w\"> </span>clone<span class=\"w\"> </span>https://github.com/GitHub_nick/django.git\n</code></pre></div>\n<p>Detta kommer att skapa en ny katalog ”django”, som innehåller en klon av ditt GitHub-arkiv. Resten av git-kommandona på den här sidan måste köras i den klonade katalogen, så byt till den nu:</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=\"nb\">cd</span><span class=\"w\"> </span>django\n</code></pre></div>\n<p>Ditt GitHub-arkiv kommer att kallas ”origin” i Git.</p>\n<p>Du bör också ställa in <code class=\"docutils literal notranslate\"><span class=\"pre\">django/django</span></code> som en ”uppströms” fjärrkontroll (det vill säga, berätta för git att referens Django-förvaret var källan till din förgrening av det):</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>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\ngit<span class=\"w\"> </span>fetch<span class=\"w\"> </span>upstream\n</code></pre></div>\n<p>Du kan t.ex. lägga till andra fjärrkontroller på samma sätt:</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>git<span class=\"w\"> </span>remote<span class=\"w\"> </span>add<span class=\"w\"> </span>akaariai<span class=\"w\"> </span>https://github.com/akaariai/django.git\n</code></pre></div>\n</section>\n<section id=\"working-on-a-ticket\">\n<h2>Arbeta på ett ärende<a class=\"heading-anchor\" href=\"#working-on-a-ticket\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>När du arbetar med ett ärende ska du skapa en ny gren för arbetet och basera det arbetet på <code class=\"docutils literal notranslate\"><span class=\"pre\">upstream/main</span></code>:</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>git<span class=\"w\"> </span>checkout<span class=\"w\"> </span>-b<span class=\"w\"> </span>ticket_xxxxx<span class=\"w\"> </span>upstream/main\n</code></pre></div>\n<p>Flaggan -b skapar en ny gren åt dig lokalt. Tveka inte att skapa nya grenar även för de minsta sakerna - det är vad de är till för.</p>\n<p>Om du istället arbetade för en fix på 1.4-grenen skulle du göra det:</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>git<span class=\"w\"> </span>checkout<span class=\"w\"> </span>-b<span class=\"w\"> </span>ticket_xxxxx_1_4<span class=\"w\"> </span>upstream/stable/1.4.x\n</code></pre></div>\n<p>Anta att arbetet utförs på filialen ticket_xxxxx. Gör några ändringar och bekräfta dem:</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>git<span class=\"w\"> </span>commit\n</code></pre></div>\n<p>När du skriver commit-meddelandet, följ <a class=\"reference internal\" href=\"/sv/6.1/internals/contributing/committing-code/#committing-guidelines\"><span class=\"std std-ref\">riktlinjerna för commit-meddelanden</span></a> för att underlätta arbetet med sammanslagningen. Om du är obekväm med engelska, försök åtminstone att beskriva exakt vad commit gör.</p>\n<p>Om du behöver göra ytterligare arbete på din gren, commit så ofta som nödvändigt:</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>git<span class=\"w\"> </span>commit<span class=\"w\"> </span>-m<span class=\"w\"> </span><span class=\"s1\">&#39;Added two more tests for edge cases.&#39;</span>\n</code></pre></div>\n<section id=\"publishing-work\">\n<h3>Publiceringsarbete<a class=\"heading-anchor\" href=\"#publishing-work\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Du kan publicera ditt arbete på GitHub genom att köra:</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>git<span class=\"w\"> </span>push<span class=\"w\"> </span>origin<span class=\"w\"> </span>ticket_xxxxx\n</code></pre></div>\n<p>När du går till din GitHub-sida kommer du att se att en ny gren har skapats.</p>\n<p>Om du arbetar på ett Trac-ärende bör du nämna i ärendet att ditt arbete är tillgängligt från filial ticket_xxxxx i ditt GitHub-repo. Inkludera en länk till din filial.</p>\n<p>Observera att ovanstående gren kallas för en ”topic branch” i Git-språk. Det står dig fritt att skriva om historien för den här grenen, till exempel genom att använda <code class=\"docutils literal notranslate\"><span class=\"pre\">git</span> <span class=\"pre\">rebase</span></code>. Andra människor bör inte basera sitt arbete på en sådan gren, eftersom deras klon skulle bli korrupt när du redigerar åtaganden.</p>\n<p>Det finns också ”offentliga grenar”. Det här är grenar som andra människor ska forka, så historiken för dessa grenar bör aldrig ändras. Bra exempel på offentliga grenar är grenarna <code class=\"docutils literal notranslate\"><span class=\"pre\">main</span></code> och <code class=\"docutils literal notranslate\"><span class=\"pre\">stable/A.B.x</span></code> i <code class=\"docutils literal notranslate\"><span class=\"pre\">django/django</span></code>-förvaret.</p>\n<p>När du tycker att ditt arbete är redo att dras in i Django bör du skapa en pull request på GitHub. En bra pull request innebär:</p>\n<ul class=\"simple\">\n<li><p>commits with one logical change in each, following the\n<a class=\"reference internal\" href=\"/sv/6.1/internals/contributing/writing-code/coding-style/\"><span class=\"doc\">coding style</span></a>,</p></li>\n<li><p>välformade meddelanden för varje commit: en sammanfattande rad och sedan stycken om 72 tecken därefter – se <a class=\"reference internal\" href=\"/sv/6.1/internals/contributing/committing-code/#committing-guidelines\"><span class=\"std std-ref\">committing guidelines</span></a> för mer information,</p></li>\n<li><p>dokumentation och tester, om det behövs – egentligen behövs alltid tester, förutom vid ändringar i dokumentationen.</p></li>\n</ul>\n<p>Testsviten måste godkännas och dokumentationen måste byggas utan varningar.</p>\n<p>När du har skapat din pull request bör du lägga till en kommentar i det relaterade Trac-ärendet där du förklarar vad du har gjort. I synnerhet bör du notera den miljö där du körde testerna, till exempel: ”alla tester godkänns under SQLite och MySQL”.</p>\n<p>Pull requests på GitHub har bara två tillstånd: öppen och stängd. Den merger som kommer att hantera din pull request har bara två alternativ: att merga den eller stänga den. Av den anledningen är det inte användbart att göra en pull request förrän koden är redo för sammanfogning - eller tillräckligt nära för att en sammanfogare ska kunna avsluta den själv.</p>\n</section>\n<section id=\"editing-commit-messages\">\n<span id=\"id1\"></span><h3>Editing commit messages<a class=\"heading-anchor\" href=\"#editing-commit-messages\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>To change the message of the most recent commit, run:</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>git<span class=\"w\"> </span>commit<span class=\"w\"> </span>--amend\n</code></pre></div>\n<p>This opens an editor with the current commit message. Edit it, save, and close\nto update the commit.</p>\n<p>To change the message of an earlier commit, use the ”reword” option in\ninteractive rebase. For example, to reword one of the last three commits:</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>git<span class=\"w\"> </span>rebase<span class=\"w\"> </span>-i<span class=\"w\"> </span>HEAD~3\n</code></pre></div>\n<p>This opens an editor listing the three commits, each prefixed with the word\n”pick”. Change ”pick” to ”reword” (or ”r”) on the line of the commit you want\nto change, then save and close. A new editor will open for each commit marked\nas ”reword”, allowing you to update the message.</p>\n<p>See <a class=\"reference internal\" href=\"/sv/6.1/internals/contributing/committing-code/#committing-guidelines\"><span class=\"std std-ref\">Riktlinjer för åtaganden</span></a> for the required commit message format.</p>\n<p>After rewriting a commit that has already been pushed to GitHub, you will need\nto force-push your branch:</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>git<span class=\"w\"> </span>push<span class=\"w\"> </span>--force-with-lease<span class=\"w\"> </span>origin<span class=\"w\"> </span>ticket_xxxxx\n</code></pre></div>\n</section>\n<section id=\"rebasing-branches\">\n<h3>Ombasering av grenar<a class=\"heading-anchor\" href=\"#rebasing-branches\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>In the example above, you created two commits, the ”Fixed #xxxxx  – …”\ncommit and the ”Added two more tests …” commit.</p>\n<p>Vi vill inte ha hela historiken för din arbetsprocess i ditt repository. Din commit ”Lagt till ytterligare två tester” skulle vara ohjälpsamt brus. Istället vill vi hellre bara ha en commit som innehåller allt ditt arbete.</p>\n<p>Om du vill omarbeta historiken för din gren kan du pressa ihop överföringarna till en enda genom att använda interaktiv rebase:</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>git<span class=\"w\"> </span>rebase<span class=\"w\"> </span>-i<span class=\"w\"> </span>HEAD~2\n</code></pre></div>\n<p>HEAD~2 ovan är en förkortning för två senaste commits. Ovanstående kommando öppnar en editor som visar de två commits, med ordet ”pick” som prefix.</p>\n<p>Ändra ”pick” på den andra raden till ”squash” istället. Detta kommer att behålla den första överföringen och pressa in den andra överföringen i den första. Spara och avsluta redigeringsverktyget. Ett andra redigeringsfönster öppnas, så att du kan omformulera meddelandet för commit för commit nu när det innehåller båda dina steg.</p>\n<p>Du kan också använda alternativet ”edit” i rebase. På så sätt kan du ändra en enda commit, t.ex. för att rätta ett stavfel i en dokumentsträng:</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>git<span class=\"w\"> </span>rebase<span class=\"w\"> </span>-i<span class=\"w\"> </span>HEAD~3\n<span class=\"c1\"># Choose edit, pick, pick for the commits</span>\n<span class=\"c1\"># Now you are able to rework the commit (use git add normally to add changes)</span>\n<span class=\"c1\"># When finished, commit work with &quot;--amend&quot; and continue</span>\ngit<span class=\"w\"> </span>commit<span class=\"w\"> </span>--amend\n<span class=\"c1\"># Reword the commit message if needed</span>\ngit<span class=\"w\"> </span>rebase<span class=\"w\"> </span>--continue\n<span class=\"c1\"># The second and third commits should be applied.</span>\n</code></pre></div>\n<p>Om din ämnesgren redan är publicerad på GitHub, t.ex. om du gör mindre ändringar för att ta hänsyn till en granskning, måste du force-pusha ändringarna:</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>git<span class=\"w\"> </span>push<span class=\"w\"> </span>--force-with-lease<span class=\"w\"> </span>origin<span class=\"w\"> </span>ticket_xxxxx\n</code></pre></div>\n<p>Observera att detta kommer att skriva om historiken för ticket_xxxxx - om du kontrollerar commit-hasharna före och efter operationen på GitHub kommer du att märka att commit-hasharna inte matchar längre. Detta är acceptabelt eftersom grenen är en ämnesgren och ingen bör basera sitt arbete på den.</p>\n</section>\n<section id=\"after-upstream-has-changed\">\n<h3>Efter att uppströms har förändrats<a class=\"heading-anchor\" href=\"#after-upstream-has-changed\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>När uppströms (<code class=\"docutils literal notranslate\"><span class=\"pre\">django/django</span></code>) har ändrats bör du ombasera ditt arbete. För att göra detta, använd:</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>git<span class=\"w\"> </span>fetch<span class=\"w\"> </span>upstream\ngit<span class=\"w\"> </span>rebase<span class=\"w\"> </span>upstream/main\n</code></pre></div>\n<p>Arbetet ombaseras automatiskt med hjälp av den gren du förgrenade dig på, i exemplet med <code class=\"docutils literal notranslate\"><span class=\"pre\">upstream/main</span></code>.</p>\n<p>Kommandot rebase tar tillfälligt bort alla dina lokala ändringar, tillämpar uppströmsändringarna och tillämpar sedan dina lokala ändringar igen på arbetet.</p>\n<p>Om det finns sammanfogningskonflikter måste du lösa dem och sedan använda <code class=\"docutils literal notranslate\"><span class=\"pre\">git</span> <span class=\"pre\">rebase</span> <span class=\"pre\">--continue</span></code>. När som helst kan du använda <code class=\"docutils literal notranslate\"><span class=\"pre\">git</span> <span class=\"pre\">rebase</span> <span class=\"pre\">--abort</span></code> för att återgå till det ursprungliga tillståndet.</p>\n<p>Observera att du vill <em>basera</em> på uppströms, inte <em>sammanfoga</em> uppströms.</p>\n<p>Anledningen till detta är att genom ombasering kommer dina åtaganden alltid att vara * ovanpå* uppströms arbete, inte <em>blandade med</em> ändringarna i uppströms. På så sätt kommer din gren endast att innehålla kommandon som är relaterade till dess ämne, vilket gör det lättare att krossa.</p>\n</section>\n<section id=\"after-review\">\n<h3>Efter granskning<a class=\"heading-anchor\" href=\"#after-review\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>Det är ovanligt att få in någon icke-trivial mängd kod i kärnan utan ändringar som begärts av granskare. I det här fallet är det ofta en bra idé att lägga till ändringarna som en inkrementell commit till ditt arbete. Det gör att granskaren enkelt kan kontrollera vilka ändringar du har gjort.</p>\n<p>Gör i så fall de ändringar som krävs av granskaren. Commit så ofta som nödvändigt. Innan du publicerar ändringarna ska du basa om ditt arbete. Om du lägger till två commits skulle du köra:</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>git<span class=\"w\"> </span>rebase<span class=\"w\"> </span>-i<span class=\"w\"> </span>HEAD~2\n</code></pre></div>\n<p>Pressa in den andra commiten i den första. Skriv ett commit-meddelande i stil med:</p>\n<div class=\"code-block\" data-language=\"text\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Text</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=\"Text code\"><code>Made changes asked in review by &lt;reviewer&gt;.\n\n- Fixed whitespace errors in foobar.\n- Reworded the docstring of bar().\n</code></pre></div>\n<p>Slutligen, tryck tillbaka ditt arbete till ditt GitHub-arkiv. Eftersom du inte rörde de offentliga commits under rebase bör du inte behöva force-push:</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>git<span class=\"w\"> </span>push<span class=\"w\"> </span>origin<span class=\"w\"> </span>ticket_xxxxx\n</code></pre></div>\n<p>Din pull request bör nu också innehålla den nya commit.</p>\n<p>Observera att sammanslagningen sannolikt kommer att pressa in granskningsöverföringen i den föregående överföringen när koden överförs.</p>\n</section>\n</section>\n<section id=\"working-on-a-patch\">\n<h2>Arbetar på en patch<a class=\"heading-anchor\" href=\"#working-on-a-patch\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Ett av sätten som utvecklare kan bidra till Django är genom att granska patchar. Dessa patchar kommer vanligtvis att finnas som pull requests på GitHub och kan enkelt integreras i ditt lokala repository:</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>git<span class=\"w\"> </span>checkout<span class=\"w\"> </span>-b<span class=\"w\"> </span>pull_xxxxx<span class=\"w\"> </span>upstream/main\ncurl<span class=\"w\"> </span>-L<span class=\"w\"> </span>https://github.com/django/django/pull/xxxxx.patch<span class=\"w\"> </span><span class=\"p\">|</span><span class=\"w\"> </span>git<span class=\"w\"> </span>am\n</code></pre></div>\n<p>Detta kommer att skapa en ny gren och sedan tillämpa ändringarna från pull request på den. Nu kan du köra testerna eller göra något annat som du behöver göra för att undersöka kvaliteten på patchen.</p>\n<p>För mer information om hur du arbetar med pull requests, se <a class=\"reference internal\" href=\"/sv/6.1/internals/contributing/committing-code/#handling-pull-requests\"><span class=\"std std-ref\">riktlinjer för sammanslagningar</span></a>.</p>\n</section>\n<section id=\"summary\">\n<h2>Översikt<a class=\"heading-anchor\" href=\"#summary\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<ul class=\"simple\">\n<li><p>Arbeta på GitHub om du kan.</p></li>\n<li><p>Meddela ditt arbete på Trac-ärendet genom att länka till din GitHub-gren.</p></li>\n<li><p>När du har något klart kan du göra en pull request.</p></li>\n<li><p>Gör dina pull requests så bra som möjligt.</p></li>\n<li><p>När du gör korrigeringar av ditt arbete, använd <code class=\"docutils literal notranslate\"><span class=\"pre\">git</span> <span class=\"pre\">rebase</span> <span class=\"pre\">-i</span></code> för att krossa överföringarna.</p></li>\n<li><p>När uppströms har ändrats, gör <code class=\"docutils literal notranslate\"><span class=\"pre\">git</span> <span class=\"pre\">fetch</span> <span class=\"pre\">upstream;</span> <span class=\"pre\">git</span> <span class=\"pre\">rebase</span></code>.</p></li>\n</ul>\n</section>","rootId":"working-with-git-and-github","toc":[{"title":"Installera Git","anchor":"installing-git","children":[]},{"title":"Konfigurera lokalt arkiv","anchor":"setting-up-local-repository","children":[]},{"title":"Arbeta på ett ärende","anchor":"working-on-a-ticket","children":[{"title":"Publiceringsarbete","anchor":"publishing-work","children":[]},{"title":"Editing commit messages","anchor":"editing-commit-messages","children":[]},{"title":"Ombasering av grenar","anchor":"rebasing-branches","children":[]},{"title":"Efter att uppströms har förändrats","anchor":"after-upstream-has-changed","children":[]},{"title":"Efter granskning","anchor":"after-review","children":[]}]},{"title":"Arbetar på en patch","anchor":"working-on-a-patch","children":[]},{"title":"Översikt","anchor":"summary","children":[]}],"breadcrumbs":[{"docname":"internals/index","title":"Djangos interna funktioner","url":"/sv/6.1/internals/"},{"docname":"internals/contributing/index","title":"Att bidra till Django","url":"/sv/6.1/internals/contributing/"},{"docname":"internals/contributing/writing-code/index","title":"Bidra med kod","url":"/sv/6.1/internals/contributing/writing-code/"}],"prev":{"docname":"internals/contributing/writing-code/unit-tests","title":"Enhetstester","url":"/sv/6.1/internals/contributing/writing-code/unit-tests/"},"next":{"docname":"internals/contributing/writing-code/coding-style","title":"Kodningsstil","url":"/sv/6.1/internals/contributing/writing-code/coding-style/"},"formats":{"html":"/sv/6.1/internals/contributing/writing-code/working-with-git/","markdown":"/sv/6.1/internals/contributing/writing-code/working-with-git.md","json":"/sv/6.1/internals/contributing/writing-code/working-with-git.json"},"source":"https://github.com/django/django/blob/stable/6.1.x/docs/internals/contributing/writing-code/working-with-git.txt","official":"https://docs.djangoproject.com/sv/6.1/internals/contributing/writing-code/working-with-git/","inVersions":["6.1","6.0","5.2"],"inLocales":["en","sv","zh-hans","ga","fr","ja","id","it","pt-br","ko","es","el","pl"]}