如何为存储库中的所有分支创建.gitignore?

时间:2016-09-28 13:28:50

标签: git svn

我正在努力将SVN存储库迁移到Git存储库。

迁移后,我将SVN分支和标签转换为Git分支和标签。

但是我尝试使用以下命令将.gitignore添加到所有分支。它总是会增加当前的工作分支。

 git svn show-ignore > .gitignore

如何为所有分支添加.gitignore而不是当前分支执行命令。

1 个答案:

答案 0 :(得分:0)

您可以遍历分支并使用cherry-pick来应用包含gitignore文件的提交。

您可以使用这样的脚本(git-apply-to-all-branches.sh):

#!/usr/bin/env bash

sha=$1

# get current branch name
# http://stackoverflow.com/a/1593487/1401409
branch_name="$(git symbolic-ref HEAD 2>/dev/null)" ||
branch_name="(unnamed branch)"     # detached HEAD
branch_name=${branch_name##refs/heads/}

# iterate over all branches
git for-each-ref refs/heads | cut -d/ -f3- | while read branch;
do
    # skip current branch
    [ $branch == $branch_name ] && continue

    git checkout $branch
    git cherry-pick $sha
done

假设您刚刚在当前分支上提交了gitignore,您可以调用:

./git-apply-to-all-branches.sh <sha_of_your_gitignore_commit>