我正在和一些伙伴一起开展一个项目。
昨天我克隆了该项目,目的是增加一项功能 我有2个本地分支正在开发(主分支)和pageContent(我的功能分支)。
我目前遇到的问题是当我在我的功能分支上编辑某些内容时,它会自动在我的developp分支上编辑它(我没有提交任何内容)。
我检查了我的developp分支以删除该版本,当我在我的功能分支上签出时,该版本也被删除了......
分支似乎是自动同步的。
答案 0 :(得分:1)
我查看了我的开发分支以删除该版本,当我在我的功能分支上签出时,该版本也被删除了......
在下图中,您可以看到 3 states
。
Git有三个主要状态,您的文件可以驻留在其中。
它们都在您的分支机构之间共享。但是当您结帐分支时,您更改了HEAD
,这样即使您结帐分支机构,也会在您的存储库之间共享staging area && working directory
。
由于您在切换分支时没有提交(我假设发生了什么),您会看到跟随更改您的新分支。
如果您不希望更改为关注,则需要在切换到分支之前提交(或隐藏)您的工作。
How to checkout different branch with clean working directory and stage area?
如果您希望在工作目录中没有任何“剩余”的情况下签出干净的分支,并且您可以创建一个新的worktree
,这将导致您的存储库的共享视图(所有内容是共享的)但是有一个不同的工作目录和暂存区。
git worktree add <new_path>
现在在你的任何分支中做任何你想做的事。它将创建2个独立的工作文件夹,彼此分开,同时指向同一个存储库。
使用wortree,您无需执行任何clear
或reset
即可删除所有已暂存且未跟踪的内容。
以下是如何操作的演示: