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