[TOC]
## 一、場景描述
假如你是一個剛畢業的新人,或者剛剛如何進入一個項目組的第一天,項目“老大”給我發布了第一天的任務:把所有的開發環境弄好,并把項目代碼從git上面拉取到本地。剩余的時間閱讀代碼及項目文檔,等待項目組的業務及相關培訓!
## 二、環境準備
* 安裝Intellij IDEA。如果公司沒有正版授權碼,該怎么辦**你知道的**!
* 安裝git,超簡單!不會的話找搜索引擎,關鍵字: Git安裝、Windows,一搜一大堆
## 三、IntelliJ IDEA 配置git
把安裝好的git可執行文件路徑,配置到IDEA的“Path to Git Excuteable”,看圖:

## 四、配置用戶和郵箱
這個配置按照規范的角度是一定要做的,因為你加入項目組之后要去寫代碼,你必然會做各種git操作。讓其他人知道是誰做了什么操作,該怎么聯系是很重要的。(下文是示例,不一定非是163郵箱哈)
打開(也可以是其他命令行工具),執行git命令。
~~~bash
$ git config --global user.name "Zimug"
$ git config --global user.email "your_email@163.com"
~~~
使用下面命令可以查看配置的結果
~~~bash
git config --list
~~~
## 五、克隆項目(HTTPS)
如果"老大"給的項目相關的git信息如下:
* 項目遠程倉庫地址,比如:`https://gitee.com/hanxt/dongbb.git`
* 為我分配了git遠程倉庫的用戶及密碼,沒有賬號就管"老大"要(在公司內通常是私有gitlab)
現在作為一個新人,我就需要將“老大”給我的項目代碼,從遠程倉庫拉取到我們的本地目錄下面了。

下面的圖形界面操作,如果你不使用IDEA,也可以使用如下命令行代替:
~~~bash
# 先進入到規劃好的項目存儲目錄,比如C:\Users\hanxt\IdeaProjects,執行clone命令
git clone https://gitee.com/hanxt/dongbb.git
~~~

按照提示輸入用戶名密碼,項目就克隆成功了!開始看代碼吧!
## 六、克隆項目(SSH方式)
如果"老大"給的項目遠程倉庫地址:`git@gitee.com:hanxt/dongbb.git`,**注意這里的地址不是https開頭的,這種是ssh方式的git倉庫地址**
> 這兩種方式的區別是:https是用戶名密碼模式,SSH的是令牌模式。
> * 你的銀行賬號,用你的賬戶和密碼就可以取錢,這就是用戶密碼模式。需要有用戶,需要有密碼,二者對上了才能取錢。
> * 小燕子帶著乾隆皇帝留給夏雨荷的信物,去見乾隆皇帝。皇帝看見信物就相信了小燕子是自己的女兒。信物就是令牌,前提是:這個令牌(信物)是頒發人和持有人都認可的。
### 6.1.生成令牌
任意位置鼠標右鍵git bash,在git bash(也可以是其他命令行工具)中執行如下命令,生成令牌,一路敲回車即可!
~~~
$ ssh-keygen -t rsa -C "your_email@163.com"
~~~
命令執行完成后,在當前用戶目錄下會有一個`.ssh`目錄

### 6.2.將id_rsa.pub文件交給老大
這個文件內容就是“信物”,就是令牌,就是token。把它交給你的老大,你的項目老大拿到這個令牌之后,就會讓專人(配置管理員)把它配置到GitLab、GitHub、Gitee等等git倉庫上面,取決于項目代碼存在哪!
* 你(小燕子、紫薇)持有令牌
* git倉庫(乾隆皇帝)認可令牌
倉庫那面配置好了,你就可以clone項目代碼了。
### 6.3.clone項目代碼
~~~bash
# 先進入到項目計劃的本地存儲目錄
git clone git@gitee.com:hanxt/dongbb.git
~~~

項目代碼clone之后可以用IDEA打開查看
## 七、老大拿到“令牌”之后到底做了什么?
6.2.將id_rsa.pub文件交給老大,老大拿到“令牌”之后到底做了什么?你的項目老大拿到這個令牌之后,就會讓專人(配置管理員),把它配置到GitLab、GitHub、Gitee等等git倉庫上面,取決于你的代碼存在哪!
以開源中國的gitee倉庫為例:

- DevOps介紹
- 持續集成流程
- git工作流實踐
- 新人準備git環境
- git工作流最佳實踐
- jenkins基礎入門
- jenkins簡介
- jenkins安裝(docker)
- 源碼拉取
- maven構建
- 應用發布
- 結合gitlab版本管理
- jenkins-docker部署
- harbor鏡像發布
- jenkins集成SonarQube
- SonarQube代碼檢測
- 集成SonarQube
- jenkins-pipeline
- 構建pipeline任務
- pipeline基礎結構
- pipeline核心語法
- jenkinsfile構建
- 完整案例
- 整合釘釘發送通知
- 腳本使用憑證信息
- jenkins結合k8s使用
- k8s架構及基礎概念
- k8s操作命令
- jenkins部署k8s
- 附錄(其他未完成)
- jenkins高可用服務搭建
- gitlab-docker環境搭建
- 開發人員安裝git
- JDK與maven
- docker安裝gitlab
- docker安裝
- docker-compose安裝
- harbor安裝
- SonarQube安裝
- 2.暫時沒寫的內容
- 構建結果郵件發送
- 已有項目上傳gitlab