kes@work ~/c $ git status
On branch fix_typos_and_do_small_improvements
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
new file: dancer/_global/t/lib/Global/Test/Routes.pm
Untracked files:
(use "git add <file>..." to include in what will be committed)
Utils.pm
kes@work ~/c $ git checkout check_responses_from_backend
error: Your local changes to the following files would be overwritten by checkout:
dancer/_global/t/lib/Global/Test/Routes.pm
Please commit your changes or stash them before you switch branches.
Aborting
我知道,我在我的作業目錄中進行了更改,在切換分支之前我應該??隱藏我的更改。我這樣做了,效果很好,但現在不行。
在這里,我在當前作業目錄中創建檔案,我不想丟失這些更改。它是當前分支的新檔案,但此檔案已存在于我要切換到的分支中。
為什么我不能切換到不同的分支?我沒有看到任何無法做到的問題。請解釋這里發生了什么。謝謝你。
** git 版本 2.35.3
uj5u.com熱心網友回復:
為什么我不能切換到不同的分支?
您有一個檔案,在您的作業樹和當前分支中,未跟蹤。(此檔案名為dancer/_global/t/lib/Global/Test/Routes.pm。)
另一個分支名稱check_responses_from_backend選擇一個提交,在該提交中跟蹤并提交了相同的檔案。1 為了切換到該分支,Git必須覆寫您當前版本的檔案。
Git 正是在告訴你這一點。Git 在說:如果我按照你的要求做,你將丟失檔案的內容。請保存這些內容,如果您沒有這樣做,請不要怪我!
處理此問題的最簡單方法是讓您保存該檔案的內容,方法是對其進行跟蹤和提交,或者將其移至其他名稱,可能完全從您的作業樹中洗掉。然后您可以切換到另一個分支,因為檔案的內容以其他名稱或某個提交安全地保存起來。當您稍后想要這些內容時,您可以從其他名稱或您所做的提交中獲取它們。
1從技術上講,它只是“已提交”:檔案的跟蹤性取決于在您git checkout或git switch. 但是,如果您成功簽出該分支,您將擁有一個跟蹤檔案,該檔案將包含該提交的內容。
uj5u.com熱心網友回復:
你可以。您只需要使用該標志-f,但它會導致未暫存的檔案被來自目標分支的內容覆寫。這通常不是想要的,所以你必須明確地說出來。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/460229.html
上一篇:共享完整的git存盤庫
