git某个文件移出版本控制_将您的点文件移至版本控制

git某个文件移出版本控制

通过隐藏文件集(称为dotfiles)来定制操作系统确实令人兴奋。 H.“ Waldo” Grunenwald在《 Shell点文件可以为您做什么 》一书中详细介绍了为什么以及如何设置点文件。 让我们深入探讨共享它们的原因和方式。

什么是点文件?

“ Dotfiles”是我们在计算机中浮动的所有配置文件的通用术语。 这些文件通常以开头 文件名的开头(例如.gitconfig) ,并且操作系统通常默认情况下将其隐藏。 例如,当我在MacOS上使用ls -a时,它将显示所有可爱的点文件,否则这些点文件将不在输出中。


   
   
dotfiles on master
ls
README.md  Rakefile   bin       misc    profiles   zsh-custom

dotfiles on master
ls -a
.               .gitignore      .oh-my-zsh      README.md       zsh-custom
..              .gitmodules     .tmux           Rakefile
.gemrc          .global_ignore .vimrc           bin
.git            .gvimrc         .zlogin         misc
.gitconfig      .maid           .zshrc          profiles

如果我看一下用于Git配置的.gitconfig ,就会看到大量的自定义。 我拥有帐户信息,终端颜色首选项和大量别名,这些别名使我的命令行界面像我的一样。 这是[alias]块的摘录:


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

由于我的.gitconfig具有200多个自定义行,因此我没有兴趣在使用的每台新计算机或系统上重写它,其他任何人也没有。 这是共享点文件变得越来越流行的原因之一,尤其是随着社交编码网站GitHub的兴起。 倡导共享点文件的规范文章是Zach Holman的从2008年开始分叉的点文件》 。前提是今天如此:我想与自己,那些点文件的新手以及那些教过我的人共享它们。分享他们的自定义内容

共享点文件

我们中的许多人拥有多个系统,或者知道硬盘足够灵活,因此我们希望备份精心策划的自定义设置。 我们如何在环境之间同步这些精彩的文件?

我最喜欢的答案是分布式版本控制,最好是可以为我处理繁重任务的服务。 我经常使用GitHub,并随着我对GitLab的更多了解而继续享用它。 任何一个都是共享您的信息的理想场所。 要设置自己:

  1. 登录到您首选的基于Git的服务。
  2. 创建一个名为“ dotfiles”的存储库。 (将其公开!分享很重要。)
  3. 将其克隆到您的本地环境。 *
  4. 将您的dotfile复制到该文件夹​​中。
  5. 将它们符号链接(符号链接)回到其目标文件夹(最常见的是$ HOME )。
  6. 将它们推送到远程存储库。

*您可能需要设置Git配置命令来克隆存储库。 GitHub和GitLab都将提示您运行命令。

Creating a new project on GitLab

上面的步骤4是这项工作的关键,可能会有些棘手。 无论您使用脚本还是手动执行脚本,工作流程都是从dotfiles文件夹符号链接到dotfiles目标,以便对dotfile的任何更新都可以轻松地推送到远程存储库。 为此,我将输入.gitconfig文件:


   
   
$ cd dotfiles /
# Be sure to adjust the user to your user, which you can
# find in the path or by running the following:
$ echo $USER
mbbroberg
$ pwd
/ Users / mbbroberg / Develop / dotfiles
# Be sure to use an absolute path
$ ln -nfs / Users / mbbroberg / Develop / .gitconfig / Users / mbbroberg / .gitconfig

添加到symlinking命令的标志还具有其他一些优点:

  • -s创建符号链接而不是硬链接
  • -f在发生错误时继续其他符号链接(此处不需要,但在循环中很有用)
  • -n避免符号链接符号链接(与ln的其他版本的-h相同)

如果要更深入地了解可用参数,可以查看ln的IEEE和开放组规范以及MacOS 10.14.3上的版本。 自从别人的dotfile中拉出这些标志以来,我不得不查找这些标志。

你也可以用一点额外的代码更新简单,就像Rake文件 ,我从分叉布拉德Parbs 。 另外,您可以像Jeff Geerling 在他的dotfile中所做的那样 ,使它变得非常简单。 他使用此Ansible剧本对文件进行符号链接。 此时使所有内容保持同步很容易:您可以从dotfiles文件夹中进行作业或偶尔进行git push

快速说明:不分享的内容

在我们继续之前,值得注意的是你应该添加到dotfile库,即使以一个点开始共享。 任何有安全风险的东西,例如.ssh /文件夹中的文件,都不是使用此方法共享的好选择。 确保在在线发布配置文件之前仔细检查配置文件,并再次检查文件中没有API令牌。

我应该从哪里开始?

如果Git是新的给你,我的有关术语的文章一张小抄我最常用的命令应该可以帮助您去。

还有其他不可思议的资源可帮助您开始使用点文件。 几年前,我遇到了dotfiles.github.io,并继续使用它来更广泛地了解人们在做什么。 在其他人的点文件中隐藏了许多部落知识。 花时间浏览一些内容,不要害羞地将它们添加到自己的内容中。

我希望这会让您从在计算机上拥有一致的点文件开始感到高兴。

您最喜欢的dotfile技巧是什么? 添加评论或发给@mbbroberg

翻译自: https://opensource.com/article/19/3/move-your-dotfiles-version-control

git某个文件移出版本控制

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值