Git将一个文件夹添加到存储库中的所有分支

时间:2013-08-25 20:11:52

标签: git

我的本​​地计算机上有一个git存储库,有许多,大约10个分支。在此存储库的根目录中,有一个当前未在任何分支中跟踪的文件夹。我现在想开始跟踪这个。如果我执行git add foldername/*然后git commit它将仅将文件夹添加到当前分支。我可以使用git命令,以便将文件夹添加到所有分支,而无需手动检出每个分支并将文件夹添加到该分支?如果它是相关的,我想声明在每个分支中有几个不同的文件(与上面的文件夹无关),我想保持这种方式。也就是说,您建议的命令应该保持其他文件不变。

提前感谢您的帮助。

3 个答案:

答案 0 :(得分:2)

没有简单的方法可以做到这一点。实现它的唯一方法是将文件夹单独添加到10个分支中的每个分支,或将其添加到一个文件夹,并将该提交单独合并到每个其他分支中。

答案 1 :(得分:1)

分支处理是分开处理,直到合并它们为止。但是,如果您确实不想手动执行此操作,则可以对以下脚本进行一些改进:

$ git checkout master
$ git add foldername
$ git commit -am "Adding foldername"
$ for i in `git branch`; do git checkout $i && git cherry-pick master; done

答案 2 :(得分:1)

重置而非结帐将完全按照您的要求进行,零结帐,工作区中没有任何内容

# from a worktree with nothing staged
for b in `git branch|sed s/.//`; do
    git reset $b
    git add folder
    git commit -m'add folder'
done
git reset where_you_were_before