如何启动没有祖先的干净分支,然后逐步提交文件?

Jav*_*vis 50 git branch

我有一个使用GIT版本的PHP框架,我正在计划对其核心进行多次(大幅)更改.

我想要做的是在新分支中开始研究新核心,但由于这种变化可能还需要对文件系统进行一些重组,所以我想尽可能干净地开始这个新分支.

我希望clean分支只包含核心文件.当我完成我的更改时,我希望将其余的模块从框架逐个添加到工作目录中,但如果我在master上进行更改,则保持合并的能力.

我怎样才能做到这一点?

Tod*_*obs 96

没有祖先的分支

你想要--orphan标志.例如:

git checkout master
git checkout --orphan foo

# Unstage all the files in your working tree.
git rm --cached $(git ls-files)
Run Code Online (Sandbox Code Playgroud)

将创建一个名为foo的新分支,不带祖先,但它将保留当前工作树,从您调用命令时所处的任何分支(在本例中为主分支).然后,您可以修改您的工作树以适应,然后进行提交以重新开始该分支的历史记录.

文件的增量分段

要对历史记录执行增量添加,请使用git add仅为每个提交暂存所需的文件.git-add(1)手册页有关于有选择地添加文件的说法:

可以给出Fileglobs(例如*.c)来添加所有匹配的文件.还可以给出一个前导目录名称(例如,添加dir/file1和dir/file2的目录),以递归方式添加目录中的所有文件.

  • @ wieczorek1990那将删除`.git`文件夹..改用`git clean -fd`. (5认同)