之前發(fā)現(xiàn)公司同步代碼使用的是一個叫Rsync的工具减响。最近遇到了一個場景,我在github上面的一個項目需要放在公司的gitlab上面,但是公司的代碼和開源的代碼涉及到一些脫敏的轉(zhuǎn)化咐扭。如果只是單純的文件復制子寓,發(fā)現(xiàn)會太麻煩了。于是想到了這個工具辜羊。
簡單的查詢了之后踏兜,發(fā)現(xiàn)這個工具在MacOS上默認自帶。所以使用起來無需安裝八秃。
Rsync碱妆,是一個文件同步工具,可以進行文件增量同步昔驱,能夠在多臺支持Remote sync
的設(shè)備上面進行遠程同步疹尾,公司發(fā)布代碼就是使用了這樣一個工具。
使用他來進行本地代碼不同倉庫的同步有點殺雞用牛刀的感覺。但是我的原則是纳本,只要使用起來簡單方便窍蓝,能夠節(jié)省時間與成本,那么這個工具就該使用繁成。
Rsync在本地文件同步中的主要使用方式是:
rsync [OPTION] SRC DEST
其中主要的操作可以自行查閱https://baike.baidu.com/item/rsync/8086338?fr=aladdin
通過閱讀文檔吓笙,我們發(fā)現(xiàn)如果要做到一些數(shù)據(jù)的脫敏,我們只需要利用好--exclude
和--include
這兩個配置就能夠做到了巾腕。如果涉及到的文件過多可以使用--exclude-from=FILE
和
--include-from=FILE
的寫法來排除或者指定包含的文件列表面睛。文件列表的書寫格式幾乎和.gitignore
的格式一模一樣。
綜上所述尊搬,我們最后只需要通過這樣一條命令加上一個文件配置侮穿,就能簡單的完成兩個不同的git倉庫的相同代碼之前的同步了。
rsync -aq --exclude-from="./.rsync-exclude.list" --include-from="./.rsync-include.list" ~/github_project/test/ ~/gitlab_project/test/
是不是超級簡單毁嗦,今后只需要在其中一邊開發(fā)亲茅,完成之后只需要運行下腳本就能進行同步操作了。