8

RStudio のバージョン管理システムとして git を使用しています。git に保存された R スクリプトのいくつかの異なるバージョンがあります。たとえば、コード ブロックを削除した後、そのコードを現在の R スクリプトに再挿入することにしました。コードに関数が含まれていることは知っていますddply。これは私の現在のワークフローです:

RStudio でターミナルを開き、次のように入力します。

git grep ddply $(git rev-list --all)

これにより、次のような数百行のコードが表示されます。

2c975e1faee880545546646648f5be2b55f60fc757c29828f1f:reports/:data <- ddply(x, .(as.factor(y), summarise, mean(count))
2c975e1faee880545546646648f5be2b55f60fc757c29828f1f:reports/:data <- ddply(x, .(as.factor(y), summarise, mean(count))
2c975e1faee880545546646648f5be2b55f60fc757c29828f1f:reports/:data <- ddply(x, .(as.factor(y), summarise, mean(count))
2c975e1faee880545546646648f5be2b55f60fc757c29828f1f:reports/:data <- ddply(x, .(as.factor(y), summarise, mean(count))
2c975e1faee880545546646648f5be2b55f60fc757c29828f1f:reports/:data <- ddply(x, .(as.factor(y), summarise, mean(count))

私はコードをふるいにかけ、最終的に探していたビットを見つけました。関連するコードをターミナルからコピーし、R スクリプトに貼り付けます。コードを使用可能にする前に、次のビットを削除する必要があります。2c975e1faee880545546646648f5be2b55f60fc757c29828f1f:reports/:

現時点では、これはバージョン管理された古いコードを再利用するためのかなり遅くて扱いにくい方法のように感じます。Rhistory を使用したほうがよいかもしれません。

バージョン管理されたコードを git から取得し、RStudio の R スクリプトに戻すより高速な方法はありますか?

4

1 に答える 1

2

Git の RStudio インターフェースは非常に基本的なものであり、単純な を超えて履歴を操作したりrevert、切り替えを超えてブランチを操作したりするための直接的な方法は提供していません。

再利用したい関数に ddply が存在することだけがわかっている場合は、それを検索する方法が実際に実行できる最善の方法であるか、または のgrepフラグ-Gですgit log。他に何か知っている場合 (つまり、期間、ファイルまたはパス名、または作業を行ったブランチなど) は、コミット ログをいくつかの基準でフィルター処理することにより、作業をより簡単にすることができます。

コミットを見つけたら、次のコマンドを使用してパッチ チャンクを対話的にチェックアウトできます。

git checkout -p

対話型コミットを使用した場合と同じように使用します。これにより、チャンクを分割して、必要な部分だけを取得できます。または、切り取りと貼り付けを使用してコードを再挿入したい場合は、git show&& コピー/貼り付けを行います。

RStudio のインターフェースだけに縛られているわけではないことを忘れないでください。明示的なチャンクをグラフ化するために履歴を操作および検索できる git 用の使いやすい GUI が多数あり、それらのいずれも Rstudio に干渉しません。それらはすべてコード上で動作するだけで、RStudio インターフェイスは必要に応じて更新されます。

Git インターフェイス

個人的には、ターミナル、gitGUI および gitk コマンド、TortoiseGit、および Git 拡張機能が好きです。

于 2013-06-17T23:18:55.673 に答える