自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

把“點(diǎn)文件”放到版本控制中

系統(tǒng) Linux
通過(guò)在 GitLab 或 GitHub 上分享你的點(diǎn)文件,可以在整個(gè)系統(tǒng)上備份或同步你的自定義配置。

[[278368]]

通過(guò)在 GitLab 或 GitHub 上分享你的點(diǎn)文件,可以在整個(gè)系統(tǒng)上備份或同步你的自定義配置。

通過(guò)隱藏文件集(稱(chēng)為點(diǎn)文件dotfile)來(lái)定制操作系統(tǒng)是個(gè)非常棒的想法。在這篇 Shell 點(diǎn)文件可以為你做點(diǎn)什么中,H. Waldo Grunenwald 詳細(xì)介紹了為什么以及如何設(shè)置點(diǎn)文件的細(xì)節(jié)?,F(xiàn)在讓我們深入探討分享它們的原因和方式。

什么是點(diǎn)文件?

點(diǎn)文件dotfile”是指我們計(jì)算機(jī)中四處漂泊的配置文件。這些文件通常在文件名的開(kāi)頭以 . 開(kāi)頭,例如 .gitconfig,并且操作系統(tǒng)通常在默認(rèn)情況下將其隱藏。例如,當(dāng)我在 MacOS 上使用 ls -a 時(shí),它才會(huì)顯示所有可愛(ài)的點(diǎn)文件,否則就不會(huì)顯示這些點(diǎn)文件。

  1. dotfiles on master
  2. ls
  3. README.md  Rakefile   bin       misc    profiles   zsh-custom
  4.  
  5. dotfiles on master
  6. ls -a
  7. .               .gitignore      .oh-my-zsh      README.md       zsh-custom
  8. ..              .gitmodules     .tmux           Rakefile
  9. .gemrc          .global_ignore .vimrc           bin
  10. .git            .gvimrc         .zlogin         misc
  11. .gitconfig      .maid           .zshrc          profiles

如果看一下用于 Git 配置的 .gitconfig,我能看到大量的自定義配置。我設(shè)置了帳戶信息、終端顏色首選項(xiàng)和大量別名,這些別名可以使我的命令行界面看起來(lái)就像我的一樣。這是 [alias] 塊的摘錄:

  1. 87   # Show the diff between the latest commit and the current state
  2. 88   d = !"git diff-index --quiet HEAD -- || clear; git --no-pager diff --patch-with-stat"
  3. 89
  4. 90   # `git di $number` shows the diff between the state `$number` revisions ago and the current state
  5. 91   di = !"d() { git diff --patch-with-stat HEAD~$1; }; git diff-index --quiet HEAD -- || clear; d"
  6. 92
  7. 93   # Pull in remote changes for the current repository and all its submodules
  8. 94   p = !"git pull; git submodule foreach git pull origin master"
  9. 95
  10. 96   # Checkout a pull request from origin (of a github repository)
  11. 97   pr = !"pr() { git fetch origin pull/$1/head:pr-$1; git checkout pr-$1; }; pr"

由于我的 .gitconfig 有 200 多行的自定義設(shè)置,我無(wú)意于在我使用的每一臺(tái)新計(jì)算機(jī)或系統(tǒng)上重寫(xiě)它,其他人肯定也不想這樣。這是分享點(diǎn)文件變得越來(lái)越流行的原因之一,尤其是隨著社交編碼網(wǎng)站 GitHub 的興起。正式提倡分享點(diǎn)文件的文章是 Zach Holman 在 2008 年發(fā)表的《點(diǎn)文件意味著被復(fù)刻》。其前提到今天依然如此:我想與我自己、與點(diǎn)文件新手,以及那些分享了他們的自定義配置從而教會(huì)了我很多知識(shí)的人分享它們。

分享點(diǎn)文件

我們中的許多人擁有多個(gè)系統(tǒng),或者知道硬盤(pán)變化無(wú)常,因此我們希望備份我們精心策劃的自定義設(shè)置。那么我們?nèi)绾卧诃h(huán)境之間同步這些精彩的文件?

我最喜歡的答案是分布式版本控制,最好是可以為我處理繁重任務(wù)的服務(wù)。我經(jīng)常使用 GitHub,隨著我對(duì) GitLab 的使用經(jīng)驗(yàn)越來(lái)越豐富,我肯定會(huì)一如既往地繼續(xù)喜歡它。任何一個(gè)這樣的服務(wù)都是共享你的信息的理想場(chǎng)所。要自己設(shè)置的話可以這樣做:

  1. 登錄到你首選的基于 Git 的服務(wù)。
  2. 創(chuàng)建一個(gè)名為 dotfiles 的存儲(chǔ)庫(kù)。(將其設(shè)置為公開(kāi)!分享即關(guān)愛(ài)。)
  3. 將其克隆到你的本地環(huán)境。(你可能需要設(shè)置 Git 配置命令來(lái)克隆存儲(chǔ)庫(kù)。GitHub 和 GitLab 都會(huì)提示你需要運(yùn)行的命令。)
  4. 將你的點(diǎn)文件復(fù)制到該文件夾中。
  5. 將它們符號(hào)鏈接回到其目標(biāo)文件夾(最常見(jiàn)的是 $HOME)。
  6. 將它們推送到遠(yuǎn)程存儲(chǔ)庫(kù)。

[[278369]]

上面的步驟 4 是這項(xiàng)工作的關(guān)鍵,可能有些棘手。無(wú)論是使用腳本還是手動(dòng)執(zhí)行,工作流程都是從 dotfiles 文件夾符號(hào)鏈接到點(diǎn)文件的目標(biāo)位置,以便對(duì)點(diǎn)文件的任何更新都可以輕松地推送到遠(yuǎn)程存儲(chǔ)庫(kù)。要對(duì)我的 .gitconfig 文件執(zhí)行此操作,我要輸入:

  1. $ cd dotfiles/
  2. $ ln -nfs .gitconfig $HOME/.gitconfig

添加到符號(hào)鏈接命令的標(biāo)志還具有其他一些用處:

  • -s 創(chuàng)建符號(hào)鏈接而不是硬鏈接。
  • -f 在發(fā)生錯(cuò)誤時(shí)繼續(xù)做其他符號(hào)鏈接(此處不需要,但在循環(huán)中很有用)
  • -n 避免符號(hào)鏈接到一個(gè)符號(hào)鏈接文件(等同于其他版本的 ln 的 -h 標(biāo)志)

如果要更深入地研究可用參數(shù),可以查看 IEEE 和開(kāi)放小組的 ln 規(guī)范以及 MacOS 10.14.3 上的版本。自從其他人的點(diǎn)文件中拉取出這些標(biāo)志以來(lái),我才發(fā)現(xiàn)了這些標(biāo)志。

你還可以使用一些其他代碼來(lái)簡(jiǎn)化更新,例如我從 Brad Parbs 復(fù)刻的 Rakefile。另外,你也可以像 Jeff Geerling 在其點(diǎn)文件中那樣,使它保持極其簡(jiǎn)單的狀態(tài)。他使用此 Ansible 劇本對(duì)文件進(jìn)行符號(hào)鏈接。這樣使所有內(nèi)容保持同步很容易:你可以從點(diǎn)文件的文件夾中進(jìn)行 cron 作業(yè)或偶爾進(jìn)行 git push。

簡(jiǎn)單旁注:什么不能分享

在繼續(xù)之前,值得注意的是你不應(yīng)該添加到共享的點(diǎn)文件存儲(chǔ)庫(kù)中的內(nèi)容 —— 即使它以點(diǎn)開(kāi)頭。任何有安全風(fēng)險(xiǎn)的東西,例如 .ssh/ 文件夾中的文件,都不是使用此方法分享的好選擇。確保在在線發(fā)布配置文件之前仔細(xì)檢查配置文件,并再三檢查文件中沒(méi)有 API 令牌。

我應(yīng)該從哪里開(kāi)始?

如果你不熟悉 Git,那么我有關(guān) Git 術(shù)語(yǔ)的文章和常用命令備忘清單將會(huì)幫助你繼續(xù)前進(jìn)。

還有其他超棒的資源可幫助你開(kāi)始使用點(diǎn)文件。多年前,我就發(fā)現(xiàn)了 dotfiles.github.io,并繼續(xù)使用它來(lái)更廣泛地了解人們?cè)谧鍪裁?。在其他人的點(diǎn)文件中隱藏了許多秘傳知識(shí)。花時(shí)間瀏覽一些,大膽地將它們添加到自己的內(nèi)容中。

我希望這是讓你在計(jì)算機(jī)上擁有一致的點(diǎn)文件的快樂(lè)開(kāi)端。 

 

責(zé)任編輯:龐桂玉 來(lái)源: Linux中國(guó)
相關(guān)推薦

2022-02-18 15:36:53

源碼點(diǎn)文件

2013-04-25 10:28:38

大數(shù)據(jù)云服務(wù)

2024-09-29 15:21:01

2009-07-28 15:38:14

aspx文件編譯ASP.NET

2009-06-29 18:09:12

多路復(fù)用Oracle

2021-12-27 12:01:06

數(shù)據(jù)云端運(yùn)維

2015-07-03 09:02:52

跳躍服務(wù)器帶寬

2010-05-21 09:42:22

Subversion學(xué)

2010-05-31 19:53:05

SVN版本控制插件

2024-07-18 08:59:39

CanvasWebWorker代碼

2009-12-08 12:45:17

Windows 7快捷

2010-06-02 14:16:18

SVN版本控制

2009-09-01 17:32:04

C#版本控制

2011-09-28 13:28:56

F5虛擬化云計(jì)算

2010-05-31 20:07:31

SVN版本控制插件

2023-08-03 08:00:00

數(shù)據(jù)湖模式驗(yàn)證

2011-08-01 15:48:14

2020-05-28 15:35:21

Linux數(shù)據(jù)文件圖像

2021-02-06 17:55:41

微服務(wù)Maven版本控制

2009-06-25 11:11:25

控制JSF切入點(diǎn)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)