自動刷github提交記錄

来源:https://www.cnblogs.com/tywei90/archive/2018/02/21/8456546.html
-Advertisement-
Play Games

前言 進入自己github主頁會看到自己的提交記錄,如果某天沒有提交記錄,那天的小方框就顯示灰色。強迫症的我,每次進來看著就感覺不爽, 想著自己每天記得提交點東西,爭取像 "阮一峰" 大神一樣,每天都有提交記錄。 但是,畢竟是人,哪天忙了就會忘記提交,所以想著能不能實現在自己阿裡雲伺服器(linux ...


前言

進入自己github主頁會看到自己的提交記錄,如果某天沒有提交記錄,那天的小方框就顯示灰色。強迫症的我,每次進來看著就感覺不爽,
想著自己每天記得提交點東西,爭取像阮一峰大神一樣,每天都有提交記錄。

阮一峰github提交記錄

但是,畢竟是人,哪天忙了就會忘記提交,所以想著能不能實現在自己阿裡雲伺服器(linux系統)上,設置cron,定製下git命令,實現每天定點自動提交。

第一步:克隆我的項目

不同的克隆方式導致校驗方式不同,對應的免秘方式也不一樣。簡單來說,https通過記住賬號密碼免登,ssh通過校驗生成的密鑰免登。

  1. https克隆

https克隆

  1. ssh克隆

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  [email protected]:tywei90/git-auto-commit.git (fetch)  
origin  [email protected]:tywei90/git-auto-commit.git (push)  

那麼就是ssh方式。

更改克隆方式也很簡單:

https ——> ssh
git remote set-url origin [email protected]: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 [email protected]

然後,我的會報ssh: Could not resolve hostname \342\200\223t: Name or service not known的錯誤,搜了下,解決辦法是執行下列命令:

ssh -t -p 22 [email protected] 

-p表示修改伺服器埠為22,當提示輸入(yes/no)?時在後面輸入yes回車即可。但是最後還是報錯,後來又搜了下,執行如下代碼:

ssh [email protected]

即將-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!" [email protected]
  • 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!" [email protected] 是取最新的一次git提交記錄log作為郵件內容,"git auto commit successfully!"作為標題,發送郵件給[email protected]郵箱。當然這個是可選項,我想讓每次自動提交結束後給我發一封確認郵件,通過觀察郵件內容的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自動提交設置就完成了,媽媽再也不用擔心我哪天忘記提交github。

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一、使用jQuery為標簽添加屬性或者樣式 1、$("#id名").css("css屬性名","屬性值");比如:$("tbody tr:even").css("background-color","yellow"); 2、使用addClass("class名"),然後在引入的css文件中寫樣式:. ...
  • 本文推薦兩款簡單的富文本編輯器【KindEditor,NicEdit】用於獲得所見即所得的編輯效果,本文僅供學習分享使用,如有不足之處,還請指正。 ...
  • pagemaker是一個前端頁面製作工具,方便產品,運營和視覺的同學迅速開發簡單的前端頁面,從而可以解放前端同學的工作量。此項目創意來自網易樂得內部項目 "nfop" 中的pagemaker項目。原來項目的前端是採用jquery和模板ejs做的,每次組件的更新都會重繪整個dom,性能不是很好。因為當 ...
  • arr sort " " " " " " " " " " 根據一個或者多個屬性對數組進行排序,支持嵌套的屬性。而且可以在每個條件中指定排序的方向,並支持傳入比較函數。 安裝 採用 "npm" 安裝: 採用 "yarn" 安裝: 用法 通過給定的對象屬性進行排序: 逆向排序 參數 : { Object ...
  • 研究了淘寶,天貓和網易彩票163的wap主頁樣式佈局,總結移動端佈局方案 註意:代碼運行是file協議,在chrome里不支持引用本地文件,會提示跨域錯誤,可以用firefox或者Safari打開 當時做的ppt下載: "2015年12月移動端佈局方案探究" 一、基本概念 1. 物理像素(physi ...
  • 其實在早之前,就做過 "立馬理財" 的銷售額統計,只不過是用前端js寫的,需要在首頁的console調試面板里粘貼一段代碼執行, "點擊這裡" 。主要是通過定時爬取 " " 非同步介面來獲取數據。然後通過一定的排重演算法來獲取最終的數據。但是這樣做有以下缺點: 0. 代碼只能在瀏覽器視窗下運行,關閉瀏覽 ...
  • 這個項目做得比較早,當時是基於ionic1和angular1做的。做了四個tabs的app,首頁模仿攜程首頁,第二頁主要是phonegap調用手機核心功能,第三頁模仿微信和qq聊天頁,第四頁模仿一般手機的表單設置頁。同時還模仿知乎做了一個側邊欄頁(賬號:wty,密碼:123456)。 沒有後臺,純前 ...
  • 這個項目最初其實是fork別人的項目。當初想接觸下mongodb資料庫,找個例子學習下,後來改著改著就面目全非了。後臺和資料庫重構,前端增加了登錄註冊功能,僅保留了博客設置頁面,但是也優化了。 "線上地址" 一、更新內容 0. 資料庫重新設計,改成以用戶分組的subDocs資料庫結構 0. 應資料庫 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...