簡體   English   中英

Git中分支之間的未跟蹤文件

[英]Untracked files between branches in Git

我一直在這里尋找答案,似乎我可能只是對git分支應該如何工作做出錯誤的假設。

我有我的master分支,我已經創建了一個名為profiles的功能分支,我正在為配置文件做一些特定的工作。 在處理配置文件時,我更改了5或6個文件,並添加了另外5或6個新文件。 我需要切換回master分支來修復快速錯誤並注意到所有新文件和修改過的文件。 我想這是有道理的,因為git不會從master分支中刪除未跟蹤的文件並將它們帶回我的profiles分支,因為它們實際上是未跟蹤的。 但是對現有文件的更改又如何呢? 它們為什么出現在主分支中。

這是什么最好的做法。 我還沒准備好在本地提交更改。 我應該只是隱藏所有這些更改,切換到master ,進行小修復,切換回profiles然后重新應用存儲?

任何幫助表示贊賞。 謝謝

“我還沒准備好在本地提交更改。”

git中的提交是本地的東西,可以撤消,重做和重新重做。 只有當您將提交推送到需要注意的地方時才會這樣。

此外,提交對於像gitk這樣的本地工具是可見的,並且可以對它們進行差異處理,並且可以重新定位到其他提交等等。它是一個非常強大的工具。 學會使用它。

我經常這樣做:

git add .; git commit -a -m 'WIP'

如果我認為我可能會被打斷,只是為了隱藏當前工作樹中的所有內容。 如果我做了一些更改,我使用:

git add .; git commit --amend

就地更新我的“WIP”提交。 當我終於為真正的提交做好准備時,我只是:

git reset --soft HEAD~; git reset

現在我可以小心地控制最終提交的內容。

它們沒有出現在主分支中 - 如果你進行了硬重置和干凈,它們就會消失。 當你切換分支時,Git只是保留你的本地修改。

這通常很有用; 您可能已經意識到要將這些修改提交到與您當前所在分支不同的分支。 如果修改與兩個分支之間的差異沖突,git將拒絕切換分支。

不過你對最好的方法是正確的 - 根據我的經驗,干凈地切換分支是git stash最常見的用途之一。

聽起來你用git branch profiles創建了分支,但是沒有切換到它,所以你留在master ,並且在你提交時它得到了文件更改。

創建分支后,您需要使用git checkout明確切換到它(只需動態創建新分支並使用git checkout -b一步切換到它)。

如果你有變化,你不想丟失(或提交到當前分支),而是放入另一個分支,執行:

git add -A
git stash
git checkout <other branch>
git stash pop

有關git stash更多信息,請訪問git-scm.com

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM