说我的工作目录是C:\ Users \ f1,当前分支是master。
如果我签到另一个分支(myBranch),C:\ Users的内容怎么办? \ f1被myBranch的替换?换句话说,同一文件夹的内容如何随分支的变化而变化? git是否删除文件夹的当前内容(C:\ Users \ f1)并将其替换为新分支的内容?
答案 0 :(得分:1)
当您使用oldbranch
进入git存储库然后执行git checkout newbranch
时会发生这种情况:
newbranch
。newbranch
,并且更改与以前一样(未添加的更改保持未添加;未提交的更改保持未提交状态)。 请注意git
不是" daring"在此期间和其他操作一样(即,这不是真正的合并操作)。收到消息error: Your local changes to the following files would be overwritten by checkout:
和git
拒绝结帐非常容易。
在这种情况下,您仍然可以通过在结帐前使用git reset --hard
删除更改或使用存储来执行结帐:
git stash
git checkout newbranch
git stash pop
git stash pop
通常会按预期工作;如果没有,您会得到通常的合并冲突,您可以手动解决。
答案 1 :(得分:-1)
当您从主分支切换到新分支(myBranch)时,如果您没有指定任何远程分支,只需执行
git checkout -b myBranch
Git将创建一个新的本地分支,其中包含master分支的内容副本。也就是说,您的主分支中存在的任何内容都将以相同的方式存在于您的新本地分支中。 另一方面,如果您从现有远程分支创建新的本地分支跟踪,例如
git checkout -b myBranch origin / myRemoteBranch
在这种情况下,git将创建一个本地分支,其中包含上面指定的远程分支的内容的本地副本。 只要你当前的工作分支是干净的,git将允许你创建和切换分支而不会抛出错误。
所以当你切换分支时,git基本上跟踪不同的远程分支并创建它的本地副本,这是你的本地分支。
在任何时候,你都可以
git remote show origin 检查本地分支到远程分支的跟踪
希望我清除了你的怀疑