1. 程式人生 > >Jenkins中使用Git時遇到的兩個坑

Jenkins中使用Git時遇到的兩個坑

1、jenkins-slave 機器上git報錯. Host key verification failed.

git pull

18:37:24 Host key verification failed.
18:37:24 fatal: Could not read from remote repository.
18:37:24 
18:37:24 Please make sure you have the correct access rights

18:37:24 and the repository exists.

clone 也是一樣,都不好使。

具體現象是
1-如果在cmd中執行,git正常使用, .ssh 能正確起效.  
2-如果在Jenkins中執行, git就報上述錯誤. 

排查得知, jnlp 程式有一個Install as windows service 選單項,手賤點了下。
然後某個晚上斷電了,電腦起來後就以Service的途徑在執行jenkins-slave. 
目前尚不確定服務為什麼找不到.ssh裡的資料,但有一個簡單的辦法實現自動執行jnlp小程式:
[windows+R run] "shell:Startup", 開啟 ['啟動'資料夾], 將jnlp小程式扔裡面.

2、jenkins 中 git commit 失敗.

git commit [*******] -m [******]
18:49:32 
18:49:32 *** Please tell me who you are.
18:49:32 
18:49:32 Run
18:49:32 
18:49:32   git config --global user.email "

[email protected]"
18:49:32   git config --global user.name "Your Name"
18:49:32 
18:49:32 to set your account's default identity.
18:49:32 Omit --global to set the identity only in this repository.
18:49:32 
18:49:32 fatal: unable to auto-detect email address (got '[email protected]********.(none)')

具體現象是
1-如果在cmd中執行git commit , 沒毛病,  使用 git config -l 檢視,也都是有的.
2-在jenkins中就報上述錯誤.

排查後得知

如果在jenkins 中執行git config -l, 確實沒有設定 user.email / user.name
如果用where git , 可以看到在cmd中,路徑為
C:\Program Files\Git\cmd\git.exe
C:\Program Files\Git\bin\git.exe
而在bash,或jenkins中,則為
C:\Program Files\Git\mingw64\bin\git.exe  <-----------
C:\Program Files\Git\cmd\git.exe
C:\Program Files\Git\bin\git.exe

解決方法是在jenkins中執行git config user.email ,  git config user.name.

PS: 我推測上述問題都可以基於 jenkins中執行的是 mingw64\bin\git.exe 來設計其他解決方法。
比如問題1:拷貝 .ssh 到 某個目錄下,不過 mingw64\ | C:\Program Files\Git\  | C:\Program Files\Git\usr 我都試了,沒好使:(
問題2:不使用global config, 而是使用local的.

相關推薦

Jenkins使用Git遇到的

1、jenkins-slave 機器上git報錯. Host key verification failed. git pull 18:37:24 Host key verification failed. 18:37:24 fatal: Could not read fr

SpringCloud工作筆記048---RESTful API HTTP 狀態碼的定義_以及把RESTFul版本號_放到http協議header_以及RestFul設計誤區

------------------------- RESTful架構有一些典型的設計誤區。 最常見的一種設計錯誤,就是URI包含動詞。因為"資源"表示一種實體,所以應該是名詞,URI不應該有動詞,動詞應該放在HTTP協議中。 舉例來說,某個URI是/posts/s

遠端連線遇到的

在進行了一些”亂七八糟”的操作後,遠端連線不上了。這裡記錄一下兩個坑。 【1】Failed to start OpenSSH Server daemon 檢視sshd狀態 sshd

springMVC專案訪問靜態資源遇到的

1.存放靜態資原始檔夾放在了WEB_INF目錄下,導致資原始檔無法訪問,最好放在專案根路徑(WebRoot目錄)下 2.引用資原始檔路徑採用了相對路徑,由於資原始檔路徑隨著controller訪問路徑

Android開發,使用WIFI API陷阱(第一篇,共二篇)

一、版本適配問題。在Android6.0上,APP無法更新系統儲存過的、不是由當前APP建立的WIFI配置。 1、現象:     在測試過程中,發現了一個bug。場景是:在Android6.0的機器上,連線一個系統儲存過的wifi,輸入了正確的密碼後,卻始終

fragment使用百度地圖的

最近在fragment中使用到百度地圖,中間出現了幾個坑,在這裡說一下。 第一個坑就是許可權請求結果無法獲取,經過白板折騰,發現小小變動一下即可,如下: 在Activity中使用的時候我們的程式碼如下: ActivityCompat.requestPermission

kylin填記--建立cube遇到的

建立cube時,最容易出錯的地方就是在Build Dimension Dictionary這步,也就是第四步。如下圖這步,kylin後臺會做很多關於欄位的檢查。遇到的兩個坑,正是發生在這步,因為資料本身有這樣的問題:第一,維度表中型別為longtext的欄位descripti

JenkinsGit Plugin配置的幾小問題

  最近持續整合出現了一些問題,翻出來看了一下,發現之前許多配置都有點問題,導致在新環境的配置中屢屢失敗,經過一番測試總算配置成功。記錄其中幾個坑,主要是關於Git的一些配置,供日後查閱。   CI(Continuous Integration)持續整合其實是由一系列的最佳

路由器配置實踐 教你如何在Linux三臺主機網段互相通信

網絡配置 虛擬機大家好我是你們的齊天大聖又到了齊天大聖給大家講解的時間了今天我帶你們做一個 大大項目 你們信不信如果把你不小心打開這個文檔 希望你能看完 這個博文花費了我兩天的時間所以請尊重我的勞動 假裝看完好嗎 齊天大聖在此謝過各位看官首先歡迎大家觀看操作步驟 我們正式開始題目:路由配置實踐:01. 需要按

sql ,如何獲取日期之前月數、周數、天數

lvs lar sbo elif bold ss5 getdate 聲明 參數 1、獲取兩個日期之間的月數、周數、天數語法 --1、獲取兩個日期之間的月數、周數、天數 --1.1)聲明參數 declare @startDate varchar(20)

如果在一個標簽上類並用,css樣式表引用時,類必須寫在一起,不能有空格。

nbsp clas div 樣式表 ext style borde 引用 order 例: <html>   <style type="text/css">     .mui-table-view-cell.mui-collapse{      bo

Java方法重寫的面試題

col class 返回 load 重寫 this strong gpo 不同 1:方法重寫和方法重載的區別?方法重載能改變返回值類型嗎?   方法重寫:     在子類中,出現和父類中一模一樣的方法聲明的現象。(包含方法名、參數列表和返回值類型都一樣)   方法重載

phparray_walk() 和 array_map()函數區別

.html als 就是 gpo map false AR HP www. 兩個函數的共性和區別: 1.傳入這兩個函數的 $value,就是數組中的單一個元素。 2.array_walk() 僅返回true或者false,array_map() 返回處理後的數組; 3.要得

關於偽類選擇器一個冒號和冒號的區別

fault 兼容 content 中一 radi view get top AD 只要兼容現代瀏覽器如 webkit、firefox、opera等瀏覽器,對於偽元素采用雙冒號的寫法,要是非要兼容IE瀏覽器,用CSS2的單冒號寫法比較安全。 首先,閱讀 w3c 對兩者的定義:

linuxchmod與chown命令詳解

In 第一個 ID 利用 root chown 資料 後綴 沒有 在linux系統中chmod,chown命令都可以來設置權限了,但它們也是有區別的,下文小編為各位介紹chmod與chown兩個命令用法與區別介紹。 今天要分享的2個命令也是我們平時常用的,chmod與cho

Oracle使sql求日期之間的所有日期

比如,兩個日期是2018-08-27和2018-08-30,要求27,28, 29,30這四天的日期,我們可以採用下面的SQL來求得: --oracle 求兩個日期之間的所有日期 SELECT TO_CHAR((TO_DATE(KSRQ, 'yyyy-MM-dd') + (ROWNU

使用pygal繪製世界地圖報錯

我在使用pygal呼叫國別碼、繪製世界地圖的時候,遇到了兩個問題,一是使用下方語句呼叫國別碼的時候 from pygal.i18n import COUNTRIES 出現瞭如下報錯: ModuleNotFoundError: No module named 'pygal.i18n

JavaScriptsetTimeout()和setInterval()定時器的區別和使用方法

兩者最直接的區別是: setTimeout()在載入後延遲指定時間去執行一次表示式,只是一次。 setInterval()它從載入後,每隔指定的時間就執行一次表示式 所以要讓一段程式碼, 某個函式以固定頻率重複執行應該使用setInterval()函式 如果讓一段程式碼, 某個函式在

使用Pangolon在同一副圖,畫出軌跡,比較誤差

轉載:https://www.cnblogs.com/feifanrensheng/p/8628900.html 使用 code/ground-truth.txt 和 code/estimate.txt 兩條軌跡。請你根據上面公式,實現 RMSE 的計算程式碼,給出最後的 RMSE 結果。作為驗