摘要:但是,畢竟是人,哪天忙了就會(huì)忘記提交,所以想著能不能實(shí)現(xiàn)在自己阿里云服務(wù)器系統(tǒng)上,設(shè)置,定制下命令,實(shí)現(xiàn)每天定點(diǎn)自動(dòng)提交。
前言
進(jìn)入自己github主頁(yè)會(huì)看到自己的提交記錄,如果某天沒(méi)有提交記錄,那天的小方框就顯示灰色。強(qiáng)迫癥的我,每次進(jìn)來(lái)看著就感覺(jué)不爽,
想著自己每天記得提交點(diǎn)東西,爭(zhēng)取像阮一峰大神一樣,每天都有提交記錄。
但是,畢竟是人,哪天忙了就會(huì)忘記提交,所以想著能不能實(shí)現(xiàn)在自己阿里云服務(wù)器(linux系統(tǒng))上,設(shè)置cron,定制下git命令,實(shí)現(xiàn)每天定點(diǎn)自動(dòng)提交。
第一步:克隆我的項(xiàng)目不同的克隆方式導(dǎo)致校驗(yàn)方式不同,對(duì)應(yīng)的免秘方式也不一樣。簡(jiǎn)單來(lái)說(shuō),https通過(guò)記住賬號(hào)密碼免登,ssh通過(guò)校驗(yàn)生成的密鑰免登。
https克隆
ssh克隆
如果,你已經(jīng)克隆了項(xiàng)目,不知道采用了哪種方式,可以執(zhí)行:
git remote -v
如果是這樣:
origin https://github.com/tywei90/git-auto-commit.git (fetch) origin https://github.com/tywei90/git-auto-commit.git (push)
那么就是https方式;
如果是這樣:
origin git@github.com:tywei90/git-auto-commit.git (fetch) origin git@github.com:tywei90/git-auto-commit.git (push)
那么就是ssh方式。
更改克隆方式也很簡(jiǎn)單:
https ——> ssh
git remote set-url origin git@github.com:tywei90/git-auto-commit.git
ssh ——> https
git remote set-url origin https://github.com/tywei90/git-auto-commit.git
針對(duì)上面兩種克隆項(xiàng)目的方式,有兩種免密登錄設(shè)置。
1.賬號(hào)密碼免登(https克隆)cd git-auto-commit/.git vim config
在config文件最后添加如下代碼:
[credential] helper = store
保存,輸入一次賬號(hào)密碼后第二次就會(huì)記住賬號(hào)密碼了
2.公鑰私鑰免登(ssh克隆) 2.1 生成公鑰和私鑰檢查本機(jī)的ssh密鑰:
cd ~/.ssh ls
如果提示:No such file or directory,說(shuō)明你是第一次使用git,那就自己手動(dòng)創(chuàng)建目錄
使用ssh-keygen命令生成ssh密鑰,命令如下:
ssh-keygen -t rsa
輸入上面命令后,遇到選擇直接回車(chē),即可生成ssh 密鑰。生成ssh 密鑰后,可以到~/.ssh目錄下查看相關(guān)文件,一般來(lái)說(shuō)ssh 密鑰會(huì)包含id_rsa和id_rsa.pub兩個(gè)文件,分別表示生成的私鑰和公鑰。
2.2 拷貝公鑰到你的github在.ssh目錄下,執(zhí)行cat id_rsa.pub,復(fù)制所有公鑰內(nèi)容
點(diǎn)擊github的頭像,在下拉菜單中選擇 setting 選項(xiàng),在打開(kāi)頁(yè)面的左側(cè)菜單中點(diǎn)擊 SSH and GPG keys,然后點(diǎn)擊新頁(yè)面右上角綠色按鈕 New SSH key。填寫(xiě)title值,并將復(fù)制的公鑰內(nèi)容粘貼到key輸入框中提交。
2.3 測(cè)試鏈接github我看網(wǎng)上是輸入如下命令:
ssh –t git@github.com
然后,我的會(huì)報(bào)ssh: Could not resolve hostname 342200223t: Name or service not known的錯(cuò)誤,搜了下,解決辦法是執(zhí)行下列命令:
ssh -t -p 22 git@github.com
-p表示修改服務(wù)器端口為22,當(dāng)提示輸入(yes/no)?時(shí)在后面輸入yes回車(chē)即可。但是最后還是報(bào)錯(cuò),后來(lái)又搜了下,執(zhí)行如下代碼:
ssh git@github.com
即將-t去掉就好了,看到 Hi ** You"ve successfully authenticated, but GitHub does not provide shell access. 說(shuō)明連接成功了,大家可以都試一試。
第三步:設(shè)置cron,定時(shí)自動(dòng)提交任務(wù)項(xiàng)目里的add.js是用來(lái)修改records.txt的,每次執(zhí)行會(huì)將當(dāng)前的時(shí)間附加到records.txt文件末尾。然后讓git自動(dòng)提交即可。下面關(guān)鍵是cron的設(shè)置,對(duì)于linux系統(tǒng)不熟悉的我還是花了點(diǎn)時(shí)間的,這里直接將cron設(shè)置粘貼出來(lái)。先執(zhí)行crontab -e進(jìn)入cron編輯,然后粘貼如下代碼:
00 12 * * * cd /home/git-auto-commit && git pull && /root/.nvm/versions/node/v6.6.0/bin/node add.js && git commit -a -m "git auto commit" && git push origin master && git log -1 | mail -s "git auto commit successfully!" wty2368@163.com
00 12 * * *的意思是,每天的12:00執(zhí)行后面的命令。
/root/.nvm/versions/node/v6.6.0/bin/node是node二進(jìn)制執(zhí)行文件的絕對(duì)路徑,不能直接寫(xiě)node命令,不會(huì)識(shí)別的。如何查出自己的node執(zhí)行目錄,其實(shí)很簡(jiǎn)單,執(zhí)行which node即可。
"git auto commit"是每次提交的comment,可以隨意發(fā)揮
git log -1 | mail -s "git auto commit successfully!" wty2368@163.com 是取最新的一次git提交記錄log作為郵件內(nèi)容,"git auto commit successfully!"作為標(biāo)題,發(fā)送郵件給wty2368@163.com郵箱。當(dāng)然這個(gè)是可選項(xiàng),我想讓每次自動(dòng)提交結(jié)束后給我發(fā)一封確認(rèn)郵件,通過(guò)觀察郵件內(nèi)容的date值是不是當(dāng)前時(shí)間,就可以判斷這次自動(dòng)提交是否成功。如果大家要實(shí)現(xiàn)這個(gè)功能,需要配置下linux郵件發(fā)送設(shè)置,這個(gè)有時(shí)間再寫(xiě)。主要要注意阿里云服務(wù)器對(duì)郵件25端口的限制,比較坑!
第四步:利用shell腳本批量補(bǔ)上之前的提交記錄上面的步驟解決了之后每天的git提交記錄,但是github自己主頁(yè)默認(rèn)顯示之前一年的提交記錄,那如何補(bǔ)上之前的記錄呢?好在github的提交記錄時(shí)間以commit時(shí)間為準(zhǔn),所以我們可以更改自己電腦的時(shí)間,然后再commit。我系統(tǒng)是centos7,這里僅以此為例。不同linux版本修改時(shí)間的命令可能不同,大家網(wǎng)上百度下,文章很多。
4.1 修改系統(tǒng)時(shí)間為想要彌補(bǔ)時(shí)間段的終點(diǎn)比如,想要修改時(shí)間段位2018-01-01~2018-01-31,那么需要修改系統(tǒng)時(shí)間為2018-01-31,腳本如下:
timedatectl set-time "2018-01-31 13:00:00"4.2 進(jìn)入項(xiàng)目目錄,執(zhí)行l(wèi)oop腳本
確定我們要修改的天數(shù),2018-01-01到2018-01-31一共是31天,我們?cè)诿钚袀魅氪藚?shù)
cd git-auto-commit screen -d -m -L sh loop.sh 31
這里,screen -d -m -L命令可以將我們執(zhí)行的任務(wù)后臺(tái),這樣即使退出服務(wù)器連接也不會(huì)終止腳本的運(yùn)行。大家可以刷新自己的github主頁(yè),看看是不是灰色區(qū)域都變綠了。
后記至此,github自動(dòng)提交設(shè)置就完成了。我們來(lái)看下成果:
然后每天中午12點(diǎn)會(huì)受到郵件如下:
其實(shí),刷github提交記錄本身沒(méi)什么意義,但是我想說(shuō)的是:工作生活中,我們經(jīng)常會(huì)有各種各樣的想法,大家不要忽視了或者覺(jué)得很難就不去做。其實(shí)真正動(dòng)手去實(shí)踐,發(fā)現(xiàn)并沒(méi)有那么難,反而很有趣。而且不知不覺(jué)中就學(xué)到了很多知識(shí)。
歡迎大家star學(xué)習(xí)交流:github地址 | 我的博客
(完)
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/107526.html
摘要:前言今天是刷題打卡第天可能有鐵汁會(huì)問(wèn),為什么變成刷好題,而不是刷了呢因?yàn)樽罱P者遇到很多經(jīng)典的筆試題,想著記錄下來(lái),方便大家和自己學(xué)習(xí),所以今后筆者會(huì)在標(biāo)題上注明是不是力扣題。 【前言】 今天是刷題打卡第21天! 可能有鐵汁會(huì)問(wèn),為什么變成刷好題, 而不是刷LeetCode 了呢?因?yàn)?..
摘要:聲明這里只是作業(yè)上面的內(nèi)容,后續(xù)還會(huì)更新更好的方法。前言今天是刷題打卡第天蕪湖,堅(jiān)持一個(gè)月咯,蟹蟹大家的陪伴哈原題楊輝三角題目描述在屏幕上打印楊輝三角。 【聲明】 這里只是作業(yè)上面的內(nèi)容,后續(xù)還會(huì)更新更好的方法。? 【前言】? 今天是刷題打卡第30天! 蕪湖,堅(jiān)持一個(gè)月咯,蟹蟹大...
摘要:前言今天是刷題打卡第天加油啦。原題從大到小輸出題目描述寫(xiě)代碼將三個(gè)整數(shù)數(shù)按從大到小輸出。 【前言】 今天是刷題打卡第29天! 加油啦。 原題:從大到小輸出 題目描述: 寫(xiě)代碼將三個(gè)整數(shù)數(shù)按從大到小輸出。 示例: 輸入:12 23 22輸出:23 22 12 思路: 本題主要記住...
摘要:前言今天是力扣打卡第天天天做遞歸做煩了,換換腦子,嘿嘿。原題不用加減乘除做加法題目描述寫(xiě)一個(gè)函數(shù),求兩個(gè)整數(shù)之和,要求在函數(shù)體內(nèi)不得使用四則運(yùn)算符號(hào)。補(bǔ)碼的優(yōu)勢(shì)加法減法可以統(tǒng)一處理只有加法器。 【前言】 今天是力扣打卡第15天! 天天做遞歸做煩了,換換腦子,嘿嘿。 原題: 不用加減...
摘要:大家簡(jiǎn)單看一下純遞歸的解法原題二叉搜索樹(shù)的范圍和解法題目描述給定二叉搜索樹(shù)的根結(jié)點(diǎn),返回值位于范圍之間的所有結(jié)點(diǎn)的值的和。 【前言】 今天是力扣打卡第11天! 感謝鐵汁們的陪伴,一起加油鴨!! 在第9天的時(shí)候?qū)戇^(guò)這道題的遞歸解題方法,其實(shí)DFS使用的解題思想就是遞歸,所以大同小異啦...
閱讀 914·2021-11-22 13:54
閱讀 2843·2021-09-28 09:36
閱讀 2979·2019-08-30 15:55
閱讀 1951·2019-08-30 15:44
閱讀 544·2019-08-29 12:31
閱讀 2563·2019-08-28 18:18
閱讀 1198·2019-08-26 13:58
閱讀 1382·2019-08-26 13:44