8

ここでnewbの質問をします。SVNから来て、複数のブランチ( "/ www / project1"、 "/ users / project2"など)をチェックアウトすることができますが、すべて同じリポジトリにあります。各ブランチには、独自のコミットやリビジョンなどがあります。皆さんは取引を知っています。

これに似た方法がGitにありますか?単一のリポジトリ内のディレクトリ/ブランチをあちこちに分散させることができますか?繰り返しますが、newbの質問でごめんなさい。これでビーズを取得しようとしています。ここで提供できる洞察に感謝します。

4

2 に答える 2

4

通常、チェックアウトとマージのプロセスは非常に高速であるため、Gitを使用する開発者はすべてのブランチを保持し、同じフォルダー内でそれらを切り替えるだけです。SVN分岐システムは非常に遅く、あまり良くありません。そのため、通常は別のフォルダーに保存していました。

別のフォルダへのブランチをチェックアウトすることが可能です。

git --work-tree=<path to target> --git-dir="<path from source>" checkout <reference-name>
# example:
git --work-tree=. --git-dir="/base-repo/.git" checkout master

ただし、この新しいフォルダはバージョン管理されないことに注意してください。バージョン管理を維持するには、リポジトリを別のフォルダーに再クローンします。

git clone path/to/local/repo/.git

gitでは、各クローンが完全なリポジトリであることに注意してください(サーバーと他のフォルダーにあるものとまったく同じです)。各クローンは完全に独立しており、他のリポジトリからプッシュ/プルできます。

お役に立てれば!

于 2013-01-15T20:17:05.827 に答える
0

Gitは分散制御バージョンです。したがって、ローカルブランチとリモートブランチを持つことができます。ローカルブランチを作成するには、git branch namenameがブランチ名を表すコマンドを使用します。すべてのローカルブランチを表示するには、コマンドを使用できますgit branch。すべてのブランチと現在のブランチが一覧表示されます。ローカルブランチ間で変更するにはgit checkout name、nameがブランチ名を表すコマンドを使用します。

ローカルブランチをリモートリポジトリに送信するには、コマンドを使用しgit push origin nameます。ここで、nameはブランチの名前を表します。また、ローカルブランチをコンピューターにコピーするには、コマンドを使用しますgit checkout -t origin/name

于 2013-01-15T20:11:59.810 に答える