403

プロジェクトを保存するために git リポジトリを使用しています。元のブランチから出発するブランチがあります。しかし今、いくつかのドキュメントを追跡するために小さな新しいプロジェクトを作成したいと考えています。そのためには、新しい空のブランチを作成してファイルの保存を開始し、ネットワークの他のユーザーにそのブランチのクローンを作成してもらいたいと考えています。

どうすればそれができますか?

いくつか試してみましたが、うまくいきませんでした。

$ mkdir proj_doc; cd proj_doc
$ git init
$ git add .
$ git commit -m 'first commit'
$ git br proj_doc
$ git co proj_doc
$ git br -d master
$ git push origin proj_doc

ブランチを正常にプッシュしているように見えますが、フェッチまたはプルを実行すると、他のブランチから情報がダウンロードされ、他のプロジェクトから余分なファイルも取得されます。最善の解決策は何ですか?

4

10 に答える 10

767

孤立したブランチを作成できます。

git checkout --orphan <branchname>

これにより、親のない新しいブランチが作成されます。次に、次の方法で作業ディレクトリをクリアできます。

git rm --cached -r .

ドキュメント ファイルを追加し、コミットして github にプッシュします。

プルまたはフェッチは、すべてのリモート ブランチに関するローカル情報を常に更新します。単一のリモート ブランチの情報のみをプル/フェッチする場合は、それを指定する必要があります。

于 2012-12-20T09:57:46.573 に答える
15

次のように空の新しいブランチを作成します。

true | git mktree | xargs git commit-tree | xargs git branch proj-doc

proj-doc ファイルがすでに単一のサブディレクトリの下でコミットされている場合、次の方法で新しいブランチを作成できます。

git commit-tree thatcommit:path/to/dir | xargs git branch proj-doc

これは、やるべきことgit branch --orphanがたくさん残される場合よりも便利かもしれません。git rmgit mv

試す

git branch --set-upstream proj-doc origin/proj-doc

それがフェッチが多すぎる問題に役立つかどうかを確認してください。また、単一のブランチのみを取得したい場合は、コマンドラインで指定するのが最も安全です。

于 2012-12-20T23:25:10.990 に答える
9

git バージョンに --orphan オプションがない場合は、次の方法を使用する必要があります。

git symbolic-ref HEAD refs/heads/<newbranch> 
rm .git/index 
git clean -fdx 

いくつかの作業を行った後:

git add -A
git commit -m <message>
git push origin <newbranch>
于 2014-09-09T12:46:25.953 に答える
4

私はこのヘルプを見つけました:

git checkout --orphan empty.branch.name
git rm --cached -r .
echo "init empty branch" > README.md
git add README.md
git commit -m "init empty branch"
于 2020-06-10T07:17:24.983 に答える
1

2022 アップデート

Git 2.23 以降、 を使用git switch --orphan <new branch>して、履歴のない空のブランチを作成できます。とは異なり、追跡されgit checkout --orphanたすべてのファイルが削除されます。

このブランチに実際にコミットしたら、リモート リポジトリにプッシュできます。

git switch --orphan <new branch>
git commit --allow-empty -m "Initial commit on orphan branch"
git push -u origin <new branch>
于 2022-01-13T18:19:57.287 に答える