簡體   English   中英

用git中未提交的更改切換分支

[英]switching branches with uncommitted changes in git

我正在master分支上工作,並且master分支內有一些未提交的更改。 我已經創建了一個功能分支,並且可以使用git checkout feature_branch命令切換到我的功能分支。 我在這里列出以下幾個疑問:

  1. 在master分支中進行更改后,為什么在分支中看到未提交的更改。 如果我在master分支中提交更改並切換到功能分支,則看不到特定於master的已提交更改。 我期望未提交的更改也具有相同的行為。
  2. 我在Git中遇到了stash命令,有人提到,如果您在master分支內有任何未提交的更改,並且想切換到其他分支,則git將不允許您這樣做,因此您需要將更改存儲在主分支,然后僅切換到開發分支。 我沒有面對這個問題。 我是否在這里遺漏了一些東西,如果這樣,使用stash命令的意義是什么?

如果我在master分支中提交更改並切換到功能分支,則看不到特定於master的已提交更改。 我期望未提交的更改也具有相同的行為。

這不是明智的行為。 根據定義,未提交的更改不會對分支進行。 分支是指向提交的指針,並且沒有與未提交的更改關聯的提交 它們被制作到您的工作目錄中,沒有任何關系將它們綁定到任何分支。 它們甚至與Git都不相關。 除非您提交(或隱藏)它們,否則Git絕對不會做任何跟蹤它們的工作,並且它將永遠不會嘗試為您管理它們。

我在Git中遇到了stash命令,有人提到,如果您在master分支內有任何未提交的更改,並且想切換到其他分支,則git將不允許您這樣做,因此您需要將更改存儲在主分支...

錯了 分支內不存在散列。 全球有一個藏匿處。

...我沒有面對這個問題。

僅當這樣做會導致您未提交的更改被覆蓋時,才可以禁止切換分支。

我是否在這里遺漏了一些東西,如果這樣,使用stash命令的意義是什么?

如果更改影響通過切換分支更改的任何文件,則只需擔心會存儲更改。 如果您對兩個分支之間的文件進行了修改,則從一個分支切換到另一個分支將不需要存儲。 如果其他分支上的文件不同,Git將不允許您切換分支,因為這會破壞未提交的更改。

嘗試切換分支是安全的,並且如果Git警告您“未提交的更改將被覆蓋”並且拒絕切換分支,則可以存儲您的更改並重試。

暫無
暫無

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

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