我有一个GIT版本的PHP框架,我正计划对它的核心做几个(激进的)改变。
我想要做的是在一个新的分支中开始处理新的核心,但由于这种更改可能还需要在文件系统上进行一些重构,所以我希望尽可能干净地开始这个新的分支。
我希望clean分支只包含核心文件。当我完成我的更改时,我希望将框架中的其余模块逐个添加到工作目录中,但如果我在master上进行更改,则可以保持合并的能力。
我该怎么做呢?
发布于 2012-07-15 06:52:23
没有祖先的分支
您需要--孤立标志。例如:
git checkout master
git checkout --orphan foo
# Unstage all the files in your working tree.
git rm --cached $(git ls-files)将创建一个名为foo的没有祖先的新分支,但它将保留调用命令时您所在的分支(在本例中为主分支)的当前工作树。然后,您可以修改您的工作树以适应需要,然后进行提交以重新开始该分支的历史记录。
文件的增量转移
要对历史记录执行增量添加,请使用git add只暂存每次提交所需的文件。git-add(1)手册页面上有关于有选择地添加文件的说明:
可以使用
文件全局(例如*.c)来添加所有匹配的文件。也可以给出一个前导目录名(例如,dir表示添加dir/file1和dir/file2),以递归方式添加目录中的所有文件。
发布于 2014-09-02 14:18:42
如果您必须使用旧版本的git:
mkdir some_dir
cd some_dir
git init
echo a>some_file; git add some_file; git commit -m 'initial commit'
cd ..
git fetch ./some_dir/ master:new_independent_branch
rm -rf some_dir发布于 2012-07-15 06:44:51
您可以简单地移动到一个新的分支git co -b my_new_branch,清理您的代码并保留您需要的东西,最后提交。该提交是my_new_branch上的第一个提交,因此将是一个干净的提交。
https://stackoverflow.com/questions/11487811
复制相似问题