use*_*433 9 git branch master git-track
我想创建一个独立于主分支的git分支.我希望到目前为止主机中存在的所有代码,但主机中的任何进一步更改都不应反映在分支中,并且分支中的任何更改都不应反映在主机中.
我用这个命令来创建分支:
git branch test
Run Code Online (Sandbox Code Playgroud)
但是我添加的任何文件master
,我都可以看到test
.test
我添加了任何新文件,我可以看到master
.怎么避免这个?创建分支时我没有使用任何--track选项.
Val*_*rio 20
我想你想要的是:
git checkout --orphan somebranch
Run Code Online (Sandbox Code Playgroud)
这将创建一个somebranch
没有任何历史记录,您可以添加您想要的文件,它们可能与您以前的分支不同100%.
你所要求的是究竟是什么git branch test
(两个历史不再共享的点).这里有两个层次的混乱:
当你git add newfile
,你将它添加到索引,但不提交它或更新任何分支与它的内容.当你签出一个新的分支然后,只要没有冲突,git就不会从索引中重置这些更改.这是一种理想的行为,例如,如果您正在处理另一个分支,并且只想将未提交的更改的一部分转移到另一个分支.如果您git commit
是原始分支上的索引状态,则当您返回测试分支时,索引将不会保留这些更改.
当您在添加或删除了新文件的树之间移动时,a git checkout
不一定会从文件系统中删除它们(如果有重置操作).然后你可以在切换分支时"看到"这些文件,例如在输出中ls
或git status
- 但是它们是"未跟踪"并且git不会尝试对它们做任何事情(git commit -a
例如,不会将此文件添加到索引中在写一棵新树之前).这没什么可担心的,但如果你是OCD,你可以删除它们(或使用git clean
).
归档时间: |
|
查看次数: |
6564 次 |
最近记录: |