ローカルホスト管理を支援するGit

もう一度、shell>と>>の混乱により貴重な設定が失われたため、ようやく実現しました。
バックアップを行う時間。

画像

ディスク上の人里離れた場所のどこかに設定のコピーを作成できます。リモートサーバーに対してrsyncを作成できます。
または、トリッキーな自転車のようなスクリプトを記述します。
しかし、最も便利なソリューションはすぐに使用できます。ルートにgitリポジトリを作成します。

他の誰かが知らない場合、gitはサーバーを上げることを強制しません。 一般に、gitのリポジトリは主にローカルエンティティです。さらに、リポジトリは1つの.gitディレクトリです。 外部リポジトリとやり取りする可能性については、外部リポジトリを使用する義務はありません。

そして今、技術的な詳細。

四肢発火の常識または予防


アイテムの回数:パスでエントリをフィルタリングし、すべて/などをリポジトリに保持するのは不便なアプローチです。
まず、/ etcはデフォルトのゴミでいっぱいです(これらの設定のいわゆる値を使用)。
次に、たとえば、/ var / lib / portage / worldを/などからのいくつかのファイルと同じように私の心に近づけたい

ポイント2:設定リポジトリをgithubに配置したい場合は、
/ etc / ssh / ssh_host_rsa_keyは、 予想外に多くのローカルユーザーを引き付けることができます。

これに基づいて、.gitignoreファイルの内容を決定します(追加のために自動的に提供されないファイルと、同じルールの例外を示します)

/.gitignore (すべてを禁止):

*

はい、はい、これ以上何もありません。 一番下の行は、gitが既に追加されているファイル(.gitignoreに反する何らかの方法で)を通常どおり処理し、新しいファイルが追加のために自動的に提供されなくなることです。

合計、設定を一度追加するだけです
add -f path-to-config/config
以降、commit -aまたはadd -Aを使用してコミットできます。

gitについて

すでにgitを使用している人にとって新しいことはありません
リポジトリ内のファイルは、次の3つのカテゴリに分類できます。
インデックスにない(追跡されていない)-.gitignoreでふるいにかけた[新しい]ファイル
ステージングされていません-まだコミット用に選択されていない変更済み/新規ファイル。
ステージング済み-追加によってコミット用にそれぞれ選択されます。

変更されたファイルのリストは、次の方法で表示できます
# git status
または、すべての監視対象ファイルを表示するには
# git ls-files

(ステージは追加の同義語であり、したがって、「ファイルを編集」せずに新しいファイルをすぐにコミットできるという唯一の注意事項があります)

レシピ:

すでにgitを使用している人にとって新しいことはありません
リポジトリを作成します。
localhost / # git init

設定を追加:
# git add path-to-config/config -f
(-fスイッチは新しいファイルにのみ必要です)

新機能をご覧ください:
# git status

正確に新しいもの:
# git diff

コミット用に変更されたすべてのファイルを選択します。
# git add -A

コミット:
# git commit [-m "message"]
(-mがない場合、エディターはコミットを説明するために開きます)

前述の2つのコマンドの組み合わせ:
# git commit -a [-m ...]

歴史:
# git log [--stat]
(他のコマンドで使用できるコミットのハッシュ(オブジェクト名)を含む表示。--abbrev-commitオプションはこの点で役立ちます)

2つのコミット間での変更点:
# git diff COMMIT COMMIT
(HEAD〜Nを使用して、Nの最新のものまたは単にHEADから離れたコミットを示すことができます)

最後のコミットのロールバック:
# git reset --hard HEAD~1
またはコミットに戻る:
# git reset --hard COMMIT

ロールバックロールバック、履歴の書き換え
単一ファイルの回復
削除されたファイルを削除する魂
枝とその他
$ man git
$ links http://git-scm.com

合計


私のgitは次のファイルを監視します:
  / etc / bash / bashrc
 /etc/make.conf
 /etc/portage/env/splitdebug.conf
 /etc/portage/package.accept_keywords
 /etc/portage/package.unmask
 /etc/portage/package.use
 / etc / sudoers
 / var / lib / portage / world 

Source: https://habr.com/ru/post/J202880/


All Articles