0
我正在將SVN存儲庫遷移到Git存儲庫。如何爲存儲庫中的所有分支創建.gitignore?
一旦我遷移了,我將SVN分支和標籤轉換成Git分支和標籤。
但是我嘗試使用以下命令將.gitignore
添加到所有分支。它總是添加到當前工作分支。
git svn show-ignore > .gitignore
如何爲所有分支添加.gitignore而不是當前分支中的命令在執行中。
我正在將SVN存儲庫遷移到Git存儲庫。如何爲存儲庫中的所有分支創建.gitignore?
一旦我遷移了,我將SVN分支和標籤轉換成Git分支和標籤。
但是我嘗試使用以下命令將.gitignore
添加到所有分支。它總是添加到當前工作分支。
git svn show-ignore > .gitignore
如何爲所有分支添加.gitignore而不是當前分支中的命令在執行中。
您可以遍歷分支並使用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>
可以寫沒有櫻桃採摘腳本? – virendrao
另一種方法是將show-ignore的輸出放在.git/info/exclude中,如文檔中所建議的那樣。 https://git-scm.com/docs/git-svn#_basic_examples。那麼你甚至不需要提交它。 – loopkin
但這種影響將保留在本地存儲庫..如果我推到遠程存儲庫其他開發人員拉和推代碼,其中包括忽略的文件,那麼它不會正常工作 – virendrao