2016-10-25 12 views
1

私はgitの新機能です(以前はperforceとsvnで作業していましたが)、Unityプロジェクトをソース管理したいと思いますが、どこでもオンラインでホストしたくありません。 私はプロジェクトだけで作業しますが、通常は別の場所にある2つの異なるコンピュータを使用します。過去に私はUSBドライブにSVNリポジトリを持ち、各コンピュータのプロジェクトのローカルバージョンから更新/コミットするために使用しました。ローカルのgitリポジトリを作成し、SourceTreeで管理するには?

私は以前はgitを使ったことがなかったので、私は学びたいと思っています。同じことをやろうとしています(gitをこの方法で使うはずはありませんが、任意のオンラインサーバー)。

gitについてかなり読んだ後、私はSVNとどのように違うのかをよく理解していたと思います。私は私のデスクトップでローカルのGitプロジェクトを持って、その後、ターミナルを(私はMAC上で動作)を使用して、私は別で、デスクトップで裸のリポジトリを作成し http://dexterlin.com/tag/git/

:I'veは私の目標を達成するために、このチュートリアルを追ってフォルダ。

問題は、私が裸のリポジトリを認識するためにSourceTreeを使用しようとしたときに実現できませんでした。 でも、私はちょっと混乱しています。私は自分のコンピュータに2つの異なるフォルダ/レポジトリを作成してSourceTreeにリンクすることができますが、SourceTreeは1つを他のものにプッシュできません。

別のコンピュータでgitを処理するためにWindows/Macクライアントが必要なので、私はSoruceTreeを使いたいです。

ここに質問があります: - 私がしようとしているのは、gitで可能ですか? - 私が作成した裸のリポジトリをSourceTreeにポイントさせるにはどうすればよいですか? - ベアリポジトリをUSBドライブにコピーすると、後で別のコンピュータリポジトリから引き出すことができますか? - 私はSourceTreeを使用して、裸のローカルリポジトリからローカルリポジトリにプッシュ/プルできるようにしますか?

事前に感謝します!任意のヘルプは非常に高く評価されます:)

+0

裸のリポジトリで作業することはできません。これは、共通/中央リポジトリとして機能するgitリポジトリの形式です。あなたはそれをあなたの個人的なリポジトリからプッシュして引き出すことができます。また、別のリポジトリから無人のリポジトリにプッシュすることもできません。 – Philippe

+0

コメントありがとうございましたPhilippe、私は裸ではないものから別のものへ(つまり、ユーザー1がユーザー2にプッシュする、またはその逆に)プッシュできると考えました。私はそれを念頭に置いて、私の2人のユーザ以外のリポジトリから引っ張ったり押したりするためのメインの更新版として裸のリポジトリを使用します。 – Cris

答えて

2

あなたのUSBデバイス(例えば、Z:\またはにマウント)にあなたの裸のリポジトリを移動するか、そこに新しい裸のレポジトリを作成します。

$ cd /Volumes/MyUsbDevice/ 
$ mkdir myNewGame.git 
$ cd myNewGame.git 
$ git init --bare 

裸のリポジトリはGitリポジトリのバイナリ形式でプロジェクトの履歴が含まれており、あなたのファイルがどこにも見つからない(私はちょうどあなたが常に周りにあなたのリポジトリを移動することができますことを指摘したかったです)。 SourceTreeが混乱しているのはおそらくそうです。あなたがする必要がどのような
は、あなたが仕事をしたいマシン上でこのリポジトリのクローンを作成します

Windowsの場合:Mac上で

$ git clone Z:\myNewGame.git myNewGame 

を:

$ git clone /Volumes/MyUsbDevice/myNewGame.git myNewGame 

かSourcetreeでこれを行うことができます。ちょうどあなたのUSBデバイス上のgitリポジトリの場所に渡してください。

あなたはmyNewGame/.git/configを参照する場合は、このようなセクションが表示されます:Gitはあなたのリモート裸のリポジトリに関する情報を格納し、それはあなたが常に上にマウントすることが重要です理由です場所です

[remote "origin"] 
    url = /Volumes/MyUsbDevice/myNewGame.git 
    fetch = +refs/heads/*:refs/remotes/origin/* 

を将来同じフォルダ/文字を使用してください。

あなたはSourcetreeで作業できます。pullはUSBデバイスから変更を取得します。pushはUSBデバイスに書き込みます。

Mac、Windows、USBデバイスの3つの場所に完全な履歴があります。 USBデバイスは、フェッチまたはプルまたはプッシュを実行する場合にのみ接続する必要があります。

歴史が分散しているので、あなたはかなり安全ですが、私はあなたのベアリポジトリを定期的にバックアップすることをお勧めします。

+0

それはすごくうまくいった!あなたの助けをして、それを正しく説明する時間をとって、Thibault D.に感謝します。本当に感謝しています。うん、間違いなく私はリポジトリからバックアップを頻繁にやるよ。 – Cris

+1

@thibault> "裸のリポジトリにはあなたのプロジェクトの履歴がGitのバイナリ形式で格納されているので、あなたのファイルはどこにもありません。 SourceTreeはそれを読み取ることができます。それは、STがそれが裸のリポジトリであることを検出できないことです(原因は形式ではありません。ほとんどの違いは、作業ディレクトリの不足です)。 GitExtensions、Windows上の別のGUIもうまくいきます。 – Philippe

+0

しかしBitBucketやGitHubのようなオンラインリポジトリは本質的に裸のリポジトリであり、SourceTreeはそれらを検出できると思っていました。申し訳ありませんが、私はこれについて間違っていますが、私はgitに全く新しいので学びたいと思っています。 – Cris

関連する問題