@kch I только (7 декабря 2008) скомпилировал v1.6.1-rc1 тег мерзавца, и это действительно содержит мерзавца svn команда ответвления и документация для него. Таким образом, v1.6.1 выпуск мерзавца должен (надо надеяться), содержать эту команду.
Из Книги сообщества Git :
git symbolic-ref HEAD refs/heads/newbranch
rm .git/index
git clean -fdx
<do work>
git add your files
git commit -m 'Initial commit'
Хотя решение с git symbolic-ref
и удаление индекса работает, было бы концептуально более чистым создать новый репозиторий
$ cd /path/to/unrelated
$ git init
[edit and add files]
$ git add .
$ git commit -m "Initial commit of unrelated"
[master (root-commit) 2a665f6] Initial commit of unrelated
1 files changed, 1 insertions(+), 0 deletions(-)
create mode 100644 foo
, а затем извлечь из него
$ cd /path/to/repo
$ git fetch /path/to/unrelated master:unrelated-branch
warning: no common commits
remote: Counting objects: 3, done.
Unpacking objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 0 (delta 0)
From /path/to/unrelated
* [new branch] master -> unrelated-branch
Теперь вы можете удалить / path / к / не связанные
Github имеет функцию под названием Страницы проекта , где вы можете создать конкретную именованную ветку в своем проекте для предоставления файлов, которые будут обслуживаться Github. Их инструкции следующие:
Нашел этот скрипт по адресу http://wingolog.org/archives/2008/10/14/merging-in-unrelated-git-branchs и он работает очень хорошо!
#!/bin/bash
set -e
if test -z "$2" -o -n "$3"; then
echo "usage: $0 REPO BRANCHNAME" >&2
exit 1
fi
repo=$1
branch=$2
git fetch "$repo" "$branch"
head=$(git rev-parse HEAD)
fetched=$(git rev-parse FETCH_HEAD)
headref=$(git rev-parse --symbolic-full-name HEAD)
git checkout $fetched .
tree=$(git write-tree)
newhead=$(echo "merged in branch '$branch' from $repo" | git commit-tree $tree -p $head -p $fetched)
git update-ref $headref $newhead $head
git reset --hard $headref