今天我帮助一个朋友解决了一个Git问题,我不得不介绍一个分支,它需要完全独立于master分支。这个分支的内容和在master分支,但它们将被合并到master稍后再分支。
分支在本质上是遵循某种约定的提交的标签,如何将提交绑定到文件树,或者(可选地)绑定到父提交。我们使用git的管道创建了对现有存储库的无父提交:
所以我们把索引里的所有文件都处理掉了.
$ git rm -rf ..从tarball中提取目录和文件,将它们添加到索引中.
$ git add ..创建了一个树对象.
$ git write-tree(git-write-tree告诉我们创建的树对象的sha1sum。)
然后,我们提交了树,而没有指定父提交.
$ echo "Imported project foo" | git commit-tree $TREE(git-commit-tree告诉我们创建的提交对象的sha1sum。)
.创建了一个指向我们新创建的提交的新分支。
$ git update-ref refs/heads/other-branch $COMMIT最后,我们回到了master分支机构继续在那里工作。
$ git checkout -f master这似乎是按计划进行的。但这显然不是我推荐给刚开始使用git的人的那种程序,温和地说。是否有一种更容易的方法来创建一个与存储库中迄今发生的一切完全无关的新分支?
发布于 2018-06-21 09:50:16
虽然解决方案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-branchhttps://stackoverflow.com/questions/-100001382
复制相似问题