
first-contributions 提交到了錯誤的分支怎么辦如何用 git reset --soft 與 stash 把最近提交移到正確分支【免費下載鏈接】first-contributions? Help beginners to contribute to open source projects項目地址: https://gitcode.com/gh_mirrors/fi/first-contributions在 first-contributions 這類協(xié)作倉庫里貢獻代碼時一個常見的失誤是改完文件提交之后才發(fā)現(xiàn)提交落到了錯誤的分支上。此時不需要刪掉重來——first-contributions 倉庫的 moving-a-commit-to-a-different-branch.md 文檔給出了一條現(xiàn)成的操作路徑先用git reset的--soft形式撤銷最近一次提交保留改動再用git stash把改動暫存起來切換到正確分支后恢復(fù)并提交。前提是你已經(jīng)明確知道要移向哪個分支已存在的分支或需要新建的分支。把最近的提交移到已存在的分支這是文檔給出的主路徑依次執(zhí)行g(shù)it reset HEAD~ --soft這條命令是文檔中的原命令用于撤銷最后一次提交但把改動保留下來文檔說明Undoes the last commit, but leaves the changes available。撤銷后你的分支指針回到上一個提交改動仍在。git stash把工作目錄的改動狀態(tài)記錄為一份 stash。執(zhí)行后工作目錄會被清空此時可以用git status確認下面輸出來自 stashing-a-file.md 的文檔示例$ git status # On branch master nothing to commit, working directory clean看到 working directory clean說明改動已經(jīng)全部進了 stash可以安全切換分支。如果 stash 棧里有多份暫存可以用git stash list查看每一層的記錄。git checkout name-of-the-correct-branch切換到目標分支把name-of-the-correct-branch替換成實際的正確分支名。git stash pop恢復(fù)棧中最新一份 stash并把它從棧中移除。git add .暫存改動文檔提示也可以只添加個別文件git add file而不是.全量添加。git commit -m your message here保存并提交把your message here替換為實際的提交信息。文檔的結(jié)論是此時你的改動已經(jīng)在正確的分支上了。如何驗證改動確實到了正確分支可以用 check-commit-log.md 中介紹的git log來核對。輸出默認按時間倒序排列用-n限制條數(shù)只看最近的提交即可git log -n 5確認你剛才的提交出現(xiàn)在當前正確分支的日志里且原分支的日志不再包含這次提交任務(wù)完成。可選分支把最近的提交移到新分支如果目標分支還不存在同一篇文檔給出了另一條路徑——先建一個保留全部提交的新分支再把當前分支退回去git branch newbranch創(chuàng)建一個新分支把newbranch替換成你想要的分支名文檔說明這會保存當前的所有提交。git reset --hard HEAD~#把當前分支回退#個提交把#替換為要回退的具體數(shù)量。注意文檔的警告這些提交將從當前分支上消失these commits will be gone from it--hard形式不會保留工作區(qū)改動。git checkout newbranch切到剛才創(chuàng)建的新分支它會帶著全部提交。文檔對這條路徑還有一句明確提醒任何未提交的改動都會丟失Any changes not committed will be LOST。執(zhí)行g(shù)it reset --hard前先確認工作區(qū)沒有你想保留的未提交內(nèi)容。限制與注意事項--soft與--hard是兩種不同強度的 reset不要混用主路徑用--soft正是為了保住改動新分支路徑用--hard是因為新分支已經(jīng)復(fù)制了提交可以安全丟棄當前分支上的副本。如果恢復(fù) stash 時目標分支上已有與改動沖突的未提交修改git 會給出合并沖突需要先解決沖突再繼續(xù)見 stashing-a-file.md。主路徑針對的是最近一次提交如果要移動多個提交參考新分支路徑中HEAD~#的回退數(shù)量寫法并同樣注意--hard的丟棄行為。完成遷移后原分支上多出的那個錯誤提交已經(jīng)不在其日志中后續(xù)可以按 resetting-a-branch.md 的方式繼續(xù)處理分支狀態(tài)或直接在正確分支上推送你的貢獻。【免費下載鏈接】first-contributions? Help beginners to contribute to open source projects項目地址: https://gitcode.com/gh_mirrors/fi/first-contributions創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考