![](/img/trans.png)
[英]How to resolve GIT conflict if I forgot to push the commits and created a feature branch from my local develop branch?
[英]New to git, why I see my changes on develop branch even if I stage them on feature branch?
我是 git 的新用戶。
我正在關注 git-flow 分支 model,所以我有分支 master 和 develop ,每次我需要一個新功能時,我都會打開一個新功能分支。
我對功能分支中的幾個文件進行了一些更改,並暫存了它們,但尚未提交,因為更改尚未經過測試:
$ git status
On branch feature/ParamConfigFaultCollection
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
modified: IOLSE_User_Objs.h
modified: data.c
現在我需要在分支開發上工作,所以我切換到它,我使用 Sourcetree 作為 git GUI,然后雙擊開發:
我原以為功能分支上隱藏文件的更改對開發不可見,但似乎這些更改也出現在開發中:
$ git status
On branch develop
Your branch is up to date with 'origin/develop'.
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
modified: IOLSE_User_Objs.h
modified: data.c
我究竟做錯了什么?
您暫存的更改不會被隱藏。 他們為提交做好了准備。 在分支之間切換時,任何未提交或未隱藏的更改都將保留在您的工作區域中,並且當 Git 可以執行切換到另一個分支而不覆蓋您更改的文件時,它將允許您這樣做。
如果您不想隨身攜帶更改,則必須:
然后切換到另一個分支。
有些客戶會請您代您保管。 我不想那樣做,因為當我切換回來時很容易忘記隱藏的更改。
我要做的不是隱藏,而是在功能分支上提交我的更改,最好有一個非常清晰的提交消息來解釋這些還沒有准備好,然后,當我回到那個分支時,我可以:
git reset --soft HEAD~1
以撤消臨時提交,但保留其更改,然后對其進行更多處理並稍后在新提交中再次提交。只要您不將更改推送到遠程服務器,您就可以調整本地歷史記錄,直到它看起來像您想要的那樣。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.