3

私は git の初心者で、プルとプッシュを行うローカル リポジトリを作成して、ローカル コンピューターでいくつかのコマンドをテストしています。

「プロジェクト」にベアリポジトリをセットアップし、そこから「user1」と「user2」の 2 人のユーザーを複製しました。プロジェクトには現在、「one.txt」、「two.txt」などのファイルと、新しい「#.txt」ファイルの追加に関連する「v1.0」、「v2.0」などのタグが付けられたいくつかのコミットがあります。

ただし、新しいフォルダー 'tmp' に新しい git 作業ディレクトリを作成しようとして、プロジェクトをリモート リポジトリとして追加し (tmp はクローンではありません)、プルすると、次のエラーが発生します。

$ git pull ../project v1.0
$ fatal: 'v1.0' does not appear to be a git repository
$ fatal: The remote end hung up unexpectedly

これは、プロジェクトから master ブランチをプルしようとしただけでは発生しないため、プルする権限があると想定しています。どうしたの?

4

2 に答える 2

3

やりたいことは、別のクローンを作成することだけです。実行しない正当な理由がない限り、すべての履歴が複製されます (心配しないでください。通常、svn リポジトリのサイズの 10% 未満であり、圧縮のために作業ディレクトリよりも小さいことがよくあります)。

最初のレポを作成します。

mkdir myrepo
cd !$
git init
echo one > one.txt
git add -A
git commit "my first commit"
git tag v1.0
echo two > two.txt
git add -A
git commit "my second commit"
git tag v2.0

シミュレートされた中央リポジトリを作成します。

cd ..
mkdir centralrepo
cd !$
git init --bare # don't want to have a working directory here
cd -

シミュレートされた同僚レポを作成します。

mkdir coworkerrepo
cd !$
git init

中央レポの場所をレポに伝える

cd ../myrepo
git remote add origin ../centralrepo

中央レポの場所を同僚のレポに伝える

cd ../coworkerrepo
git remote add origin ../centralrepo

作業を中央リポジトリに公開します。

cd - # useful shortcut for flipping between two dirs (works for git checkout and branches too)
git push origin master 

マスター参照とコミットを配置しますが、タグは配置しません。タグの場合は、次のようにします。

git push origin v1.0
git push origin v2.0

または、リポジトリ内のすべてのタグを押し上げるだけです

git push origin --tags

リモートにこれらのタグと参照があることを確認できるようになりました

git remote -v show origin

同僚のリポジトリに切り替えて、それらの変更を取得します。

cd -
git fetch # will update tracking branches and tags
git merge origin/master # fast-forward master branch to what the remote tracking branch is pointing to

fetchとの 2 つの操作mergeは で同時に行われpullます。したがって、代わりにこれを行うこともできました

git pull origin master

したがって、タグが取得されます。これは、プルがフェッチとマージ (または必要に応じてリベース) を組み合わせたものであることに気付いたときに暗示されます。

于 2012-09-27T19:27:31.347 に答える
1

あなたはすでにあなたの歴史にタグを持っています。を使用git tag -lして、使用可能なすべてのタグを一覧表示できgit checkout、いつでも一覧表示できます。

git checkout v1.0
于 2012-09-27T18:38:45.623 に答える