如何使用 Git 管理配置文件
现在很多软件的配置都可以在线同步或者支持导入导出,可以很方便的在不同设备上使用。但电脑上还有很多本地配置文件没有办法同步,夸多个设备使用时很难保持一致,换电脑也很麻烦。其实可以使用 Git 来管理这些配置文件,既可以方便的备份、跨设备同步,还能进行版本控制,防止误操作。
主要思路就是在电脑上创建个裸仓,将工作区设置为所有配置文件的根目录,一般是用户的家目录。然后忽略掉所有文件,仅将需要备份的文件强制暂存起来就可以了。
具体操作如下:
- 先在本地创建个裸仓:
mkdir config.git
cd config.git
git init --bare
- 忽略工作区内的所有文件
echo "*" >> info/exclude
- 手动配置工作区为家目录(或其他所有配置文件的共同父目录)
git config core.bare false
git config core.worktree ~
- 这时可以
git status
检查下配置是否正确,例如应该回显了nothing to commit
而不是整个工作区的文件 - 第一次添加文件的时候需要使用
-f
选项:git add -f ~/xxx.conf
,否则会提示文件已经被忽略了 - 剩下的步骤就和正常使用 Git 一样了,
git add -u
/git commit
/git push
/git pull
等
如果已经有了配置的仓库,需要在新设备上第一次恢复配置,具体操作步骤如下:
- 先克隆仓库到本地的裸仓库:
git clone --bare remote-repository-url config.git
- 手动配置工作区和忽略工作区的所有文件
echo "*" >> info/exclude
git config core.bare false
git config core.worktree ~
- 因为之前克隆的是裸仓,暂存区内没有内容,所以需要先执行
git reset
命令重建下暂存区 - 现在可以使用
git status
检查本地配置文件和远端配置文件的差异,或者使用git diff
对比 - 保险起见,应该
git checkout filename
逐个恢复,也可以使用git checkout ~
恢复所有配置
如何使用 Git 管理配置文件的更多相关文章
- Linux下,使用Git管理 dotfiles(配置文件)
1.管理你的 dotfiles 作为一个计算机深度使用者,并且长期使用 Linux 作为主要操作系统,折腾各种功能强大的软件是常有的事儿.这些软件有它们各自的配置文件,通常以 . 开头,因此有人管它们 ...
- intelliJ IDEA之使用svn或git管理代码
intelliJ IDEA之使用svn管理代码 1.VCS—>import into Version Control—>Share Project(Subversion) 2.点击+ ...
- debian安装git管理本地代码
debian安装git管理本地代码 安装git # aptitude install git-core # aptitude install git-doc git-svn git-email git ...
- webstorm中使用git管理服务器上的代码——入门级
一.首先要确保电脑已经成功安装好git了.(记住git的安装位置) 二.这里需要给webstorm配置一下:依次点击:file –> Settings –> Version Control ...
- Linux centosVMware 自动化运维Ansible介绍、Ansible安装、远程执行命令、拷贝文件或者目录、远程执行脚本、管理任务计划、安装rpm包/管理服务、 playbook的使用、 playbook中的循环、 playbook中的条件判断、 playbook中的handlers、playbook实战-nginx安装、管理配置文件
一.Ansible介绍 不需要安装客户端,通过sshd去通信 基于模块工作,模块可以由任何语言开发 不仅支持命令行使用模块,也支持编写yaml格式的playbook,易于编写和阅读 安装十分简单,ce ...
- GIT·全局配置文件及项目配置文件
阅文时长 | 0.03分钟 字数统计 | 48.8字符 主要内容 | 1.引言&背景 2.声明与参考资料 『GIT·全局配置文件及项目配置文件』 编写人 | SCscHero 编写时间 | 2 ...
- git 管理
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 16.0px "Helvetica Neue"; color: #3e3e3e; bac ...
- 用git管理源代码
自从做iOS开发的一年多以来,之前一直都是用svn进行代码管理.因为工作需要,我也开始用git管理源代码.关于git的基本使用,在此做一个详细的介绍,希望能对初次接触git的人有所帮助! 本篇博客针对 ...
- 使用 Git 管理源代码
在现代软件开发项目中,要成为一个有效的软件开发人员,我们必须能够与其他项目贡献者并行进行开发.源代码管理(SCM)系统不是什么新思想.为了编写一些能够更快速.简单地开发以后软件项目的软件,已经进行了很 ...
随机推荐
- Nacos 的安装与服务的注册
Nacos 的安装与服务的注册 我们都知道naocs是一个注册中心,那么注册中心是什么呢? 什么是注册中心? 它类似与一个中介角色(不收费的良心中介), 在微服务中起纽带的作用,它提供了服务和服务地址 ...
- MyBatis项目创建
一.开发环境的准备 总览: mybatis搭建过程: 1.导入jar 2.创建mybatis的核心(全局)配置文件mybatis-config.xml,并配置 3.创建映射文件XxxMapper.xm ...
- LEACH分簇算法实现和能量控制算法实现
一.前言 1.在给定WSN的节点数目(100)前提下,节点随机分布,按照LEACH算法,实现每一轮对WSN的分簇.记录前K轮(k=10)时,网络的分簇情况,即每个节点的角色(簇头或簇成员).标记节点之 ...
- STM32与物联网02-网络数据收发
在上一节中,介绍了 ESP8266 的使用方法.不过上一节中都是通过串口调试工具手动发送信息的方式来操作 ESP8266 ,这肯定不能用于实际开发.因此,本节介绍如何编写合适的程序来和 ESP8266 ...
- c++头文件的一个误导
通常情况下,我们都认为c++的头文件是这样的: #include <bits/stdc++.h> using namespace std; int main() 但c++也可以用c的头文件 ...
- EfficientFormer:轻量化ViT Backbone
论文:<EfficientFormer: Vision Transformers at MobileNet Speed > Vision Transformers (ViT) 在计算机视觉 ...
- 斜率优化 dp 总结
我们以一道例题引入: 洛谷 P2365 任务安排: \(n\) 个任务排成一个序列在一台机器上等待完成(顺序不得改变),这 \(n\) 个任务被分成若干批,每批包含相邻的若干任务. 从零时刻开始,这些 ...
- 一个注解搞定SpringBoot接口定制属性加解密
前言 上个月公司另一个团队做的新项目上线后大体上运行稳定,但包括研发负责人在内的两个人在项目上线后立马就跳槽了,然后又交接给了我这个「垃圾回收人员」. 本周甲方另一个厂家的监控平台扫描到我们这个项目某 ...
- LuoguP1020 导弹拦截 (LIS)
最长不降和单升 #include <iostream> #include <cstdio> #include <cstring> #include <algo ...
- Luogu2915 [USACO08NOV]奶牛混合起来Mixed Up Cows (状压DP)
枚举末位状态 #include <iostream> #include <cstdio> #include <cstring> #include <algor ...