そこで私は、会社がSVNを使用する仕事に就きました(ただし、将来Gitに移行する予定です)。問題は、SVNがわからないことです。多数のGoogleクエリを試しましたが、見つけることができるのはSVN-> Gitチュートリアル、「SVNよりGitが優れている理由」ブログ、および(一部の)比較可能なコマンドを提供する特定の「チートシート」だけです...
SVNに関するO'Reillyの本を読む以外に、Gitユーザー向けのSVNへの簡単な(しかし、短すぎない)指示は何ですか?
そこで私は、会社がSVNを使用する仕事に就きました(ただし、将来Gitに移行する予定です)。問題は、SVNがわからないことです。多数のGoogleクエリを試しましたが、見つけることができるのはSVN-> Gitチュートリアル、「SVNよりGitが優れている理由」ブログ、および(一部の)比較可能なコマンドを提供する特定の「チートシート」だけです...
SVNに関するO'Reillyの本を読む以外に、Gitユーザー向けのSVNへの簡単な(しかし、短すぎない)指示は何ですか?
回答:
正規のリファレンスはSubversion RedBookです。過去のスキルに関係なく、これを新鮮なものから読んでください。そうすれば、必要なすべての使用情報を入手できます。難しくも完全に異質でもない、ほとんどの人はSVNはgitよりも理解しやすいと言っているので、メインコマンドを少し読むだけで大丈夫です。基本的な使い方の章はあなたを取得し、問題なく実行されている必要があります。
2つの主な違いがあります。
分岐は簡単で、特にトップレベルのフォルダー(トランク、ブランチ、タグと呼ばれる)の「標準」トリオに固執する場合、マージはDVCSの謝罪者が望むほど悪くはありません。
SVNがgitを打ち負かすいくつかのビットがあり、スパースディレクトリが思い浮かびます-レポジトリの一部のみをチェックアウトします。さらに部品が必要な場合は、必要なものだけを更新します。巨大なリポジトリ(コア製品やプラグインの負荷など)がある場合、これは素晴らしいです。
gitほど良くないいくつかのビットがあり、恐ろしいツリーの競合が思い浮かびます-ディレクトリレベルで競合がある(つまり、誰かが編集したファイルを削除した)
Windowsを使用している場合は、TortoiseSVNを使用します。それは主に揺れます。
git mv
。ユーザーがを使用してファイルを移動する必要があります。SVNを持っているsvn move
が、SVNでの分岐とマージ以来種類ハックのですが、私はそれが自動的にgitのようなツリーの競合を解決することができるとは思わない...ん
git mv
はadd + removeとして実装されます。gitはヒューリスティックを使用して、コミット中に移動またはコピーが行われたかどうかを判断します(デフォルトは「ファイルの80%以上は同じですか?」)
可能であればgit svnを使用してください。私はあなたの状況にあり、半年のフラストレーションの後、私はgit svnに乗り換えて以来、満足しています。
Git svnを使用すると、リポジトリをローカルで使用でき、SVNサーバーへのコミットはgit svn rebase
、ローカルの変更をSubversionトランクgit svn dcommit
にリベースし、リベースされたコミットをコミットします。
高度なSubversionの使用には最適ではないかもしれませんが、gitをローカルで使用しているため、すべて問題ありません。
git cloneを使用する場合、subversionルートフォルダーではなく、ターゲットディレクトリを直接クローンする必要があります(clone trunk
)。これにより、gitの実行速度が大幅に向上します。そうしないと、作業コピーが巨大になる可能性があります。
免責事項:Subversionブランチなどを作成する状況がどうなっているかわかりません。一緒に作業したチームはブランチを使用していません(ローカルgitブランチのみ)。