問題タブ [dotfiles]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
git - git管理のドットファイルでサブモジュールをどのように使用できますか?
gitリポジトリを使用してドットファイルを管理していますが、サブモジュールを正しく機能させるのに最も苦労しています(ほとんどの.vimには多くの外部プラグインがあります)
実行するエイリアスcgitがあります(関連するかどうかはわかりません)。aliascgit='GIT_DIR = / home / myuser / .config-git GIT_WORK_TREE = / home /myuser/。ギット'"
したがって、cgit pullを使用してリポジトリをプルすることはできますが、サブモジュールをチェックアウト/更新することはできません。
その特定のディレクトリを削除して再試行しましたが、爆弾が発生しました。私の.gitmodulesには/home/myuser/がありません。.config-git / configにもホームディレクトリへの参照がないため、途方に暮れています。それが助けになるなら、私のバージョンのgitは1.7.4.1です
ありがとう!
アップデート
最初は、gitサブモジュールが環境変数を受け入れなかった(他のgitコマンドは受け入れていた)という奇妙なバグだったようですが、コマンドライン引数を渡す必要がありました。これで、クローンが機能し、文句を言うだけです(ack構成を手動で修正しました)
そして、〜/ .config-git / modules / .vim / ack / configを見ると、次のように表示されます。
しかし、そのワークツリーを「ls」すると、そこにあるように見えます。すべての../を削除してから、もう一度gitを試してみてください。
linux - ローカルの dotfile リポジトリをどのように扱うのですか?
他の多くの人と同じように、構成ファイルを含む git リポジトリを作成し、そのバックアップをホスティング サイトにアップロードしたいと考えています。私の質問は、ローカル リポジトリのドットファイルをどのように扱うかです。
私の zshrc/bashrc が dotfiles リポジトリにあるとしましょう。「source /path/to/local/repo/zshrc」という行を ~/.zshrc ファイルに追加すると、すべて問題ありません。vimrcでも同じです。
しかし、そのようなコマンドをサポートしていないドットファイルはどうでしょうか? ~/.conffile と /pathtolocalrepo/conffile の両方に同じ内容を含める必要がありますか? どちらかを変更すると、もう一方のファイルが更新されますか? それとももっとスマートな方法がありますか?
一般的な慣行は何ですか?
また、このローカルリポジトリは通常どこにありますか (Linux 上)? ホーム フォルダは配置するのに適切な場所ではないと思います (構成ファイルは他のユーザーも利用できるはずです) が、どの場所が最適ですか?
前もって感謝します。
git - 部分的な分岐または部分的なマージ、またはドットファイルを同期するのに役立つ他の方法はありますか?
要件のタイトルを短くする方法がわかりません。意味がない場合は申し訳ありません。ここで説明します:
多くの人は、ドットファイルをbitbucketまたはgithubに配置して、後でインストールまたは構成しやすくするために、別のPC間で同期します。私も同じことをしましたが、何か特別なことをしたいのですが、mecurial/gitがどのように役立つかわかりません。
私が持っているもの:
私は3台のマシン、たとえばHome、Office、Clientを持っており、すべてLinux OSです(異なるディストリビューションである可能性があります)。例を簡単にするために、1つのファイル.zshrc
をリポジトリに入れたいとしましょう。問題は、3つのOSのシステム変数(またはその他の設定)が異なることです。例えば
- OfficeにJBOSSがインストールされているので、
.zshrc
JBOSS_HOME変数をエクスポートする必要があります。 - クライアントにOracleがインストールされている場合は、さまざまな変数のセットをエクスポートします。
- OfficeはHTTP_PROXYをエクスポートする必要がありますが、HOMEはエクスポートしません。クライアントもそれを必要としますが、プロキシ値が異なります。
今私がしたことは、それらのマシン固有の設定(主にエクスポート、エイリアスステートメント)を別のファイル、たとえばに抽出することmyVar.sh
です。の最後にソースを設定し.zshrc
ます。
したがって、3台のマシンには共通の部分(同じ.zshrc
)と異なる部分(myVar.sh
)があります。
私が欲しいもの:
どのマシンでも、良い設定が見つかったら、
.zshrc
ファイル(共通部分)を変更してプッシュします。変更は、他のマシンと簡単に同期できる必要があります(たとえば、プルによって)myVar.sh
HOMEの(別の部分)を変更してプッシュmyVar.sh
しても、OfficeマシンをプルしてもOfficeには影響しません。
私がしていること:
これで、bitBucketに1つのリポジトリがあり、3つのブランチ(H、O、C)があります。Home PCでは、Homeブランチで遊んでいます。Office、Clientについても同じです。
問題は、1台のPCで共通部分を変更した場合、その変更はそれ自体のブランチにあり、他の2台と同期するのが少し難しいことです。私はそれらのブランチをマージすることは決してないからです。
また、PCごとに異なるディレクトリをmkすることも考えています。例えば
myVar.sh
シェルスクリプトを記述します。たとえば、$ HOSTをチェックして、どのディレクトリへの書き込みを決定します。しかし、それが私の目標を達成するための最良の方法であるかどうかは疑問です。そして、ドットファイルのディレクトリを見ると、3個すべての設定が表示されます。注意して、ファイルを読み取るために正しいものを入力する必要があります。
現実の世界では、共通部分には.zhsrc(tmux、vimrc、xdefault ..)よりもはるかに多くのものが含まれているため、別の部分も含まれます。
どういうわけか、リポジトリで部分的なブランチを作成したり、部分的なマージを実行したりできるかわかりません...
私はgitよりもはるかに多くのhgを使用していますが、hgで解決できる場合は、hgを使用します。そうでない場合は、gitも使用できます。クローン、プッシュ、プル、アップ、マージ、ciを除いて、Gitの経験はあまりありません。
さて、どうすればいいですか?
そして、これを読んでくれてありがとう...
別の部分についてもっと編集する
答えてくれてありがとう。上で述べたように、私の実際のマシンの別の部分は、ほど単純ではありませんmyVar.sh
。たとえば、会社のラップトップ(Office)をさまざまなクライアントに移動し(約6つのクライアントがあり、すべてのクライアントがPCを提供しているわけではありません。どこでもLinuxで作業できるので便利です)、それぞれのプリンターをカップごとに構成します。私もそれらの構成をリポジトリに入れます。ある日、システムを更新する必要がある場合、またはハードディスクに障害が発生した場合、それらのプリンターを非常に簡単にセットアップできたからです。別の部分に属する他のものですが、私は単に「xxxをソース」することはできません
トラックポイントのXorg.conf
.hgrcファイル(会社には独自のリポジトリ、uid、pwd、proxyがあります。)
いくつかの事前設定されたsystemdモジュール、基本的には.confファイル。ただし、マシン固有です。たとえば、自宅のラップトップ専用のradeon.confです。また、クライアントPCにはsystemdがまったくインストールされていません。
そのため、PC用に別のディレクトリを考えました。
私が今言ったように、私は3つのブランチを持っており、myConf
このディレクトリ内にgetConf.sh
、ドットファイルやさまざまなconfなどをコピーするためのディレクトリがありmyConf
ます。実際、getConf.sh
スクリプトはすべてのPCで同じではないため、は別の部分にも属しています。
したがって、この場合、 if-else/switch
thenは機能しない可能性があると思います。source
昨日、私は.zshrcを取得して、例を単純にしようとしました。それがあなたたちを誤解させるなら、それについて申し訳ありません。
git - マシン固有のチェンジセットを使用したドットファイルのバージョン管理
ドットファイルをgitリポジトリに保存しますが、(バージョン管理下にある)ローカル変更のセットが.gitconfig
異なります。環境(autocrlf true)またはユーザー名が異なる場合があります。
今、私が行くリポジトリをチェックアウトするたびに:
これは私にはベストプラクティスのようには思えません。異なるマシンで異なるローカル変更のセットを使用するにはどうすればよいですか?最もクリーンで最も明確な方法は何ですか?それとも、そもそも間違った問題に取り組んでいますか?
vim - .un〜ファイルとは何ですか?またはターミナルのVimが.un〜ファイルを作成するのはなぜですか?
で終わるドットファイルがあることに気づきました。.un~
たとえば.vividchalk.vim.un~
、がありますが、それがどこから来たのかわかりません。ターミナルでVimを使って作ったようです。これらのファイルは何ですか?編集中のファイルを閉じるときに、それらを削除することはできますか?
node.js - --no-colors などのデフォルトを指定できる .mocha ファイルはありますか?
毎回入力することなく、モカのデフォルトをいくつか設定したいと思います。jshintが探し.jshintrc
、npmが探すように、mochaはどこでも設定ファイル/ドットファイルを探しpackage.json
ますか?
chef-infra - シェフのクックブックのコレクションのどこにドットファイルを配置する必要がありますか?
インフラストラクチャをシェフにゆっくりと移行し、途中でクックブックのコレクションを構築しています。
私が確信していないことの1つは、ノード/ロール/ユーザー固有のドットファイルがどこに行くべきかということです。
たとえば、rbenv クックブックを使用して複数のユーザーに rbenv をインストールできます。
ユーザー A は rdoc ドキュメントを必要としないため、カスタム.gemrc
ファイルが必要になります。
これはどこに行くべきですか?
ファイルの内容をノード/ロール固有の JSON ファイル、またはデータ バッグに入れることもできますが、これは適切ではありません。
一般的なクックブックではなく、特定のノード/ユーザー向けの方法で実際のファイルを含める方法はありますか?
github - Github を使用してドットファイルを管理するには?
自動化されていないため、ドットファイルをgithubに保存しましたが、多くの苦労がありました。自分で更新する必要があります。
ドットファイルを自動インストール/更新/同期できる方法はありますか? つまり、新しいサーバーでは、ドットファイルをダウンロードし、install
スクリプトを実行してドットファイルをローカルにコピーします。しばらくすると、updateToRemote
スクリプトを実行してローカルの変更をリモート リポジトリにプッシュし、別のサーバーでupdateToLocal
スクリプトを実行してリモートの変更をローカルにプルすることができます。
そんな感じ。