在子文件夹中获取旧提交

时间:2016-04-15 23:05:45

标签: git

嗯,很难解释,但它是关于GTK3主题版本的。 以前,我们有

theme_name/
    gtk-2.0/
    gtk-3.0/

但GTK3.20打破了一些主题,所以我们完成:

cp -R gtk-3.0/ gtk-3.20
#theme_name/
#    gtk-2.0/
#    gtk-3.0/
#    gtk-3.20/
# Modify the gtk-3.20 directory to match the new gtk release
git commit "copy and adapt to new version"

我们没有做新文件夹。 所以现在我们有了git树:

* mv gtk-3.0 gtk-3.20, but we don't have the gtk-3.0 directory :(   
|
* 3.20 stable in the gtk-3.0 directory
|
* 3.18 stable in the gtk-3.0 directory (3.20 didn't exist)

我怎样才能"合并"旧的提交回到3.18版本(但只有gtk3.20目录)?

我可以复制粘贴,但它不符合git精神;)

1 个答案:

答案 0 :(得分:3)

git checkout <branch where the move happened and that should be fixed>
git reset --hard <commit-ish of good version>
git merge --no-ff HEAD@{1}
git checkout HEAD@{1} -- theme_name/gtk-3.0
git commit --amend -m "bring back gtk-3.0"