现在 bash 配置文件里添加 dotfiles 装用的 git alias 配置。
CONFIG_PATH=$HOME/.dfh
alias dfh="/usr/bin/git --git-dir $CONFIG_PATH --work-tree=$HOME"
添加完后,source 一下进行加载。
现在 bash 配置文件里添加 dotfiles 装用的 git alias 配置。
CONFIG_PATH=$HOME/.dfh
alias dfh="/usr/bin/git --git-dir $CONFIG_PATH --work-tree=$HOME"
添加完后,source 一下进行加载。
背景:
在公司负责一个前端服务化项目,底层使用一个特权 git 账户进行项目的创建和发布等工作。最开始的时候服务器上 git 相关的配置是另外一个同事配的。
最近公司公司服务器机房迁移,因为不是标准化的项目,需要自己手动进行迁移。这就需要完全重新配置服务器环境。
一切迁移妥当后,测试发现 git 相关的脚本都无法跑通。打 log 发现是因为 git 命令无法免密执行,被交互的账号密码输入逻辑拦截了。
要把 git repo 的 https 连接方式改成 ssh 的一般有两种方法:
一、修改 repo 下 .git 文件夹里的 config 文件,将 [remote "origin"] 里的 https://github.com/ 改成 git@github.com:
二、使用 git 提供的命令来修改 git remote set-url origin git@github.com:user/repo.git
两种方法不做修改的话都没法实现批量处理,对整个 workspace 内那么多 repo 没个批量处理的方法那还不疯了。
其实批量处理也很简单啦,一条命令的事情,就是对上面的方法一作一些小修改,用了三个比较常用的命令 find, grep, sed
$ find ~/workspace -exec grep "https://github.com/" ‘{}’ ; -exec sed -i "" "s^https://github.com/^git@github.com:^g" {} ;
查找文件夹下所有文件,找到其中的 https://github.com/ 替换成 git@github.com: