我正在努力将SVN存储库迁移到Git存储库。
迁移后,我将SVN分支和标签转换为Git分支和标签。
但是我尝试使用以下命令将.gitignore
添加到所有分支。它总是会增加当前的工作分支。
git svn show-ignore > .gitignore
如何为所有分支添加.gitignore而不是当前分支执行命令。
答案 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>