0

私たちのクライアントは、beanstalkapp.comにいくつかのバージョン管理プロジェクトを設定しています。

それらのほとんどは破壊的です。WindowsにTortoiseSVNをインストールしてセットアップしました。これにより、コンピューター上のすべてのファイルのコピーを作成できました。ファイルを変更したい場合は、ファイルを右クリックして[更新]を選択し(編集前に最新バージョンに更新されていることを確認するため)、変更を加えてから、右クリックして[コミット]を選択します。また、変更した少数のファイルを選択して、これらすべてを一度にコミットすることもできます。

最新のプロジェクトはgitを使用しています。TortoiseGitをインストールしてセットアップし、コンピューターにリポジトリのクローンを作成しましたが、インターフェイスがはるかに混乱していることがわかりました。

1)変更されたすべてのファイルをダウンロードせずに、1つのファイルだけを更新する方法を見つけることができないようです。これは、(ファイルではなく)フォルダーを右クリックし、TortoiseGit->Pullを選択することでグローバルに実行されると思います。個々のフォルダを右クリックしようとしても、プルはありません。「変更のチェック」がありますが、それはそれがどのように聞こえるかを実行していないようです。

2)私も同様にコミットすることと混同しています。右クリックしてGitcommit->masterを選択すると、変更したいファイルをチェック/チェック解除できます。しかし、それから私も「プッシュ」をしなければならないようです。これもグローバルなことのようです。ファイルを更新し、コミットして、「プッシュ」を選択しようとすると、ファイルは正しく更新されましたが、Beanstalkは、別の変更を加えたログにもリストされています。

xxx.beanstalkapp.com:/xxxの「マージブランチ」マスター

まったく触れていないファイルも含まれます。また、「プッシュ」を選択すると、ファイルのリストが表示されません。

私は同様の質問についてstackoverflowに関するさまざまな記事を読んでいますが、ほとんどはgitに関する多くの技術情報を知っている人向けのようです。コマンドライン、ブランチなどを使用します。

1つのファイルを更新して編集し、コミットする簡単な方法はありますか、それともTortoiseGitでは不可能ですか?

4

1 に答える 1

2

Gitは、Subversionとは異なり、ベースリビジョンが異なる作業ツリー(svn:working copy )の一部をサポートしていません。ツリー全体の基本リビジョンである「HEAD」コミットが常に1つあります。また、一部の変更をダウンロードして他の変更をダウンロードすることもできません。履歴全体が利用可能であり(最後に変更をフェッチしたときまで)、その履歴をローカルでナビゲートすることが期待されます(一度にコミット全体が保持されます)。

インデックスを使用して部分的な変更をコミットできますが、コミットのチェックアウト/プッシュ/プルは常にツリー全体に対する操作です。

(私はTortoiseGitに精通していませんが、これらの機能が追加された場合、リポジトリ形式を拡張する必要があるため、コマンドラインGitとは必然的に互換性がなくなります。)

混合リビジョン状態を構築する必要がある場合は、まず、対象の変更を個別のコミットに含める必要があります(Gitでは通常、きめ細かいコミットを行うことをお勧めします。git rebase -i公開する前にコミットを分割して結合するために使用できます。彼ら)。関心のある1つのリビジョンから派生した一時的なブランチを作成します。次に、git mergeまたはを使用git cherry-pickして他のブランチからの変更を追加するかgit revert、このブランチの履歴の過去の変更を元に戻します。

于 2013-02-11T20:42:31.443 に答える