01_git、GitHub右犹、Maven基礎(chǔ)

一提澎、本地配置git,注冊并將項目代碼提交到GitHub

GitHub是代碼托管平臺念链,也是基于git的開源分布式版本控制系統(tǒng)盼忌。然而,當(dāng)你登陸github官網(wǎng)時掂墓,它并沒有為你準備一個很好的代碼上傳的系統(tǒng)谦纱,這是因為它是基于git的分布式版本管理系。那么君编,如何更快更有效的將本地代碼上傳到github呢跨嘉?首先,我們需要在本地安裝git吃嘿,這樣才能在本地環(huán)境中使用git命令行祠乃,其次是要連接到你的GitHub賬戶上,這樣才能把你的代碼文件上傳上去兑燥,而每一次的更改都會形成一個版本記錄亮瓷,這樣對團隊協(xié)作是很有幫助的。

1.安裝git
下載并在本地安裝

2.配置git
設(shè)置自己的賬戶信息降瞳,windows下任意位置右鍵菜單在出現(xiàn)的菜單中選擇git bash打開git命令行嘱支,使用如下命令設(shè)置信息,配置自己的用戶名和用戶郵箱:

git config --global user.name mwkang
git config --global user.email mwkang@foxmial.com
配置用戶名用戶郵箱.png

3.創(chuàng)建本地ssh
這是一種傳輸代碼的方法挣饥,速度快又安全除师。SSH 是目前較可靠,專為遠程登錄會話和其他網(wǎng)絡(luò)服務(wù)提供安全性的協(xié)議扔枫。在終端或cmd輸入以下命令行馍盟,選擇ssh-key生成路徑和密碼均默認直接回車跳過:

ssh-keygen -t rsa -C "mwkang@foxmial.com"

創(chuàng)建本地SSH.png

4.將ssh配置到GitHub中
windows系統(tǒng)C:\Users\自己電腦用戶名.ssh 路徑下,用記事本打開id_rsa.pub茧吊,將里面的全部代碼復(fù)制到github的新建SSH中,然后檢驗是否配置成功八毯,復(fù)制如下代碼:

ssh -T git@github.com

到終端搓侄,驗證時輸入YES,然后出現(xiàn)如下信息:

Warning: Permanently added the RSA host key for IP address '192.30.252.131' to the list of known hosts.

Hi hawx1993! You've successfully authenticated, but GitHub does not provide shell access.

當(dāng)出現(xiàn)以上信息時话速,說明配置成功讶踪,可以連接上GitHub

配置成功連接到GitHub.png
將ssh配置到GitHub中.png

5.創(chuàng)建本地版本庫
在本地創(chuàng)建一個版本庫

$ mkdir test
#test是你的文件夾的名字
$ cd test
#進入test所在目錄
$ pwd
#pwd命令用于顯示當(dāng)前目錄 
創(chuàng)建一個本地倉庫和名為README的文件.png

通過git init命令把這個目錄變成Git可以管理的倉庫
$ git init

在github上創(chuàng)建一個你自己的new repository

mkdir test  
cd test  
git init    #initialize your git repository  
touch README  #create a file named README  
git add README    #add README to cache  
git commit -m 'first commit'  #commit your files to local repository

將本地的文件傳送至github中

git remote add origin https://github.com/yourname/test.git  
git push -u origin master
將文件上傳到GitHub.png
上傳成功.png

</br>

二、配置Maven并新建一個項目上傳到GitHub

Maven項目對象模型(POM)泊交,可以通過一小段描述信息來管理項目的構(gòu)建乳讥,報告和文檔的軟件項目管理工具柱查。
  Maven 除了以程序構(gòu)建能力為特色之外,還提供高級項目管理工具云石。由于 Maven 的缺省構(gòu)建規(guī)則有較高的可重用性唉工,所以常常用兩三行 Maven 構(gòu)建腳本就可以構(gòu)建簡單的項目。由于 Maven 的面向項目的方法汹忠,許多 Apache Jakarta 項目發(fā)文時使用 Maven淋硝,而且公司項目采用 Maven 的比例在持續(xù)增長。

1.配置java環(huán)境變量
maven的運行需要java運行環(huán)境宽菜,所以需要確保已安裝JDK谣膳,并將 “JAVA_HOME” 變量加入到 Windows 環(huán)境變量。

配置java本地環(huán)境變量.png
配置path路徑.png

運行如下代碼查看java版本铅乡,若如圖所示继谚,則java已在本地配置好

java -version

java配置成功.png

2.本地配置maven
Maven官方網(wǎng)站下載Maven 的 zip 文件,例如: apache-maven-3.3.9-bin.zip阵幸,將它解壓到你要安裝 Maven 的文件夾

下載maven并解壓到本地.png

3.配置maven環(huán)境變量

配置maven本地環(huán)境變量.png

運行如下代碼查看maven版本花履,若如圖所示,則maven在本地配置好

mvn -v

maven配置成功.png

4.安裝并在IDEA中配置Maven
安裝IDEA侨嘀,并在其中修改maven home路徑臭挽,其下兩個路徑為maven本地倉庫設(shè)置和路徑,默認即可咬腕。

配置Maven.png
配置maven在idea中安裝.png

5.新建Maven項目并提交到GitHub
(新建項目過程在文檔02中展開)

新建Maven項目并上傳GitHub.png
提交到GitHub.png

三欢峰、附:pull&push&git常用命令

1.pull

  • 如需獲取他人庫中的代碼,先 fork 別人的倉庫涨共,相當(dāng)于拷貝一份
  • 在自己的機器上 git clone 這個倉庫纽帖,切換分支(也可以在 master 下),進行代碼修改

git clone https://github.com/beepony/bootstrap.git
cd bootstrap~ git checkout -b test-pr
git add . && git commit -m "test-pr"
git push origin test-pr

  • 完成修改之后举反,回到 test-pr 分支懊直,發(fā)起 pull request 給原倉庫,讓對方看到你修改的 bug
  • 原倉庫 review 這個 bug火鼻,如果是正確的話室囊,就會 merge 到他自己的項目中

2.push

  • 進入到要push的代碼的目錄文件夾,打開bash
到目錄文件夾下打開Bash.png
  • 初始化魁索,系統(tǒng)會在本地代碼庫會自動創(chuàng)建一個.git隱藏文件融撞,這個就是本地代碼庫
    git init
初始化.png
初始化后新建的本地代碼庫.png
  • 加載文件,"." 是把文件夾里面的所有文件都加載進來
    git add .

也可以單個加載
git add index.html,test.html

  • 提交文件粗蔚,創(chuàng)建時間點尝偎,創(chuàng)建之后可以隨時回到這個時間點,-m "這里的文件是注釋"
    git commit -m "init commi

可以隨時查看git的狀態(tài)
git status

添加之后并查看狀態(tài).png
  • 可以看到有2個文件被修改了,9615個插入致扯,沒有文件刪除

**3.git常用命令

  • 新建代碼庫
# 在當(dāng)前目錄新建一個Git代碼庫
$ git init
# 新建一個目錄肤寝,將其初始化為Git代碼庫
$ git init [dir-name]
# 下載一個項目和它的整個代碼歷史
$ git clone [url] 
  • Git配置
# 顯示當(dāng)前的Git配置
$ git config --list
# 編輯Git配置文件
$ git config -e [--global]
# 設(shè)置提交代碼時的用戶信息
$ git config [--global] user.name "[name]"
$ git config [--global] user.email "[email address]"
  • 為Git增加/刪除文件
# 添加指定文件到暫存區(qū)
$ git add [file1] [file2] ...
# 添加指定目錄到暫存區(qū),包括子目錄
$ git add [dir]
# 添加當(dāng)前目錄的所有文件到暫存區(qū)
$ git add .
# 添加每個變化前抖僵,都會要求確認
# 對于同一個文件的多處變化鲤看,可以實現(xiàn)分次提交
$ git add -p
# 刪除工作區(qū)文件,并且將這次刪除放入暫存區(qū)
$ git rm [file1] [file2] ...
# 停止追蹤指定文件裆针,但該文件會保留在工作區(qū)
$ git rm --cached [file]
# 改名文件刨摩,并且將這個改名放入暫存區(qū)
$ git mv [file-original] [file-renamed]
  • 將代碼提交到Git
# 提交暫存區(qū)到倉庫區(qū)
$ git commit -m [message]
# 提交暫存區(qū)的指定文件到倉庫區(qū)
$ git commit [file1] [file2] ... -m [message]
# 提交工作區(qū)自上次commit之后的變化畏线,直接到倉庫區(qū)
$ git commit -a
# 提交時顯示所有diff信息
$ git commit -v
# 使用一次新的commit账月,替代上一次提交
# 如果代碼沒有任何新變化,則用來改寫上一次commit的提交信息
$ git commit --amend -m [message]
# 重做上一次commit挪挤,并包括指定文件的新變化
$ git commit --amend [file1] [file2] ...
  • Git的分支
# 列出所有本地分支
$ git branch
# 列出所有遠程分支
$ git branch -r
# 列出所有本地分支和遠程分支
$ git branch -a
# 新建一個分支耘婚,但依然停留在當(dāng)前分支
$ git branch [branch-name]
# 新建一個分支罢浇,并切換到該分支
$ git checkout -b [branch]
# 新建一個分支,指向指定commit
$ git branch [branch] [commit]
# 新建一個分支沐祷,與指定的遠程分支建立追蹤關(guān)系
$ git branch --track [branch] [remote-branch]
# 切換到指定分支嚷闭,并更新工作區(qū)
$ git checkout [branch-name]
# 切換到上一個分支
$ git checkout -
# 建立追蹤關(guān)系,在現(xiàn)有分支與指定的遠程分支之間
$ git branch --set-upstream [branch] [remote-branch]
# 合并指定分支到當(dāng)前分支
$ git merge [branch]
# 選擇一個commit赖临,合并進當(dāng)前分支
$ git cherry-pick [commit]
# 刪除分支
$ git branch -d [branch-name]
# 刪除遠程分支
$ git push origin --delete [branch-name]
$ git branch -dr [remote/branch]
  • Git的標簽
# 列出所有tag
$ git tag
# 新建一個tag在當(dāng)前commit
$ git tag [tag]
# 新建一個tag在指定commit
$ git tag [tag] [commit]
# 刪除本地tag
$ git tag -d [tag]
# 刪除遠程tag
$ git push origin :refs/tags/[tagName]
  • 查看信息
# 顯示有變更的文件
$ git status
# 顯示當(dāng)前分支的版本歷史
$ git log
# 顯示commit歷史胞锰,以及每次commit發(fā)生變更的文件
$ git log --stat
# 搜索提交歷史,根據(jù)關(guān)鍵詞
$ git log -S [keyword]
# 顯示某個commit之后的所有變動兢榨,每個commit占據(jù)一行
$ git log [tag] HEAD --pretty=format:%s
# 顯示某個commit之后的所有變動嗅榕,其"提交說明"必須符合搜索條件
$ git log [tag] HEAD --grep feature
# 顯示某個文件的版本歷史,包括文件改名
$ git log --follow [file]
$ git whatchanged [file]
# 顯示指定文件相關(guān)的每一次diff
$ git log -p [file]
# 顯示過去5次提交
$ git log -5 --pretty --oneline
# 顯示所有提交過的用戶吵聪,按提交次數(shù)排序
$ git shortlog -sn
# 顯示指定文件是什么人在什么時間修改過
$ git blame [file]
# 顯示暫存區(qū)和工作區(qū)的差異
$ git diff
# 顯示兩次提交之間的差異
$ git diff [first-branch]...[second-branch]
# 顯示今天你寫了多少行代碼
$ git diff --shortstat "@{0 day ago}"
# 顯示某次提交的元數(shù)據(jù)和內(nèi)容變化
$ git show [commit]
# 顯示某次提交發(fā)生變化的文件
$ git show --name-only [commit]
# 顯示某次提交時凌那,某個文件的內(nèi)容
$ git show [commit]:[filename]
# 顯示當(dāng)前分支的最近幾次提交
$ git reflog
  • Git遠程同步
# 下載遠程倉庫的所有變動
$ git fetch [remote]
# 顯示所有遠程倉庫
$ git remote -v
# 顯示某個遠程倉庫的信息
$ git remote show [remote]
# 增加一個新的遠程倉庫,并命名
$ git remote add [shortname] [url]
# 取回遠程倉庫的變化吟逝,并與本地分支合并
$ git pull [remote] [branch]
# 上傳本地指定分支到遠程倉庫
$ git push [remote] [branch]
# 強行推送當(dāng)前分支到遠程倉庫帽蝶,即使有沖突
$ git push [remote] --force
# 推送所有分支到遠程倉庫
$ git push [remote] --all
  • 撤銷與其他
# 恢復(fù)暫存區(qū)的指定文件到工作區(qū)
$ git checkout [file]
# 恢復(fù)某個commit的指定文件到暫存區(qū)和工作區(qū)
$ git checkout [commit] [file]
# 恢復(fù)暫存區(qū)的所有文件到工作區(qū)
$ git checkout .
# 重置暫存區(qū)的指定文件,與上一次commit保持一致块攒,但工作區(qū)不變
$ git reset [file]
# 重置暫存區(qū)與工作區(qū)励稳,與上一次commit保持一致
$ git reset --hard
# 重置當(dāng)前分支的指針為指定commit,同時重置暫存區(qū)囱井,但工作區(qū)不變
$ git reset [commit]
# 重置當(dāng)前分支的HEAD為指定commit麦锯,同時重置暫存區(qū)和工作區(qū),與指定commit一致
$ git reset --hard [commit]
# 重置當(dāng)前HEAD為指定commit琅绅,但保持暫存區(qū)和工作區(qū)不變
$ git reset --keep [commit]
# 新建一個commit,用來撤銷指定commit# 后者的所有變化都將被前者抵消鹅巍,并且應(yīng)用到當(dāng)前分支
$ git revert [commit]
# 暫時將未提交的變化移除千扶,稍后再移入
$ git stash$ git stash pop
# 生成一個可供發(fā)布的壓縮包
$ git archive
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末料祠,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子澎羞,更是在濱河造成了極大的恐慌髓绽,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,743評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件妆绞,死亡現(xiàn)場離奇詭異顺呕,居然都是意外死亡,警方通過查閱死者的電腦和手機括饶,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評論 3 385
  • 文/潘曉璐 我一進店門株茶,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人图焰,你說我怎么就攤上這事启盛。” “怎么了技羔?”我有些...
    開封第一講書人閱讀 157,285評論 0 348
  • 文/不壞的土叔 我叫張陵僵闯,是天一觀的道長。 經(jīng)常有香客問我藤滥,道長鳖粟,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,485評論 1 283
  • 正文 為了忘掉前任拙绊,我火速辦了婚禮向图,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘时呀。我一直安慰自己张漂,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,581評論 6 386
  • 文/花漫 我一把揭開白布谨娜。 她就那樣靜靜地躺著航攒,像睡著了一般。 火紅的嫁衣襯著肌膚如雪趴梢。 梳的紋絲不亂的頭發(fā)上漠畜,一...
    開封第一講書人閱讀 49,821評論 1 290
  • 那天,我揣著相機與錄音坞靶,去河邊找鬼憔狞。 笑死,一個胖子當(dāng)著我的面吹牛彰阴,可吹牛的內(nèi)容都是我干的瘾敢。 我是一名探鬼主播,決...
    沈念sama閱讀 38,960評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼簇抵!你這毒婦竟也來了庆杜?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,719評論 0 266
  • 序言:老撾萬榮一對情侶失蹤碟摆,失蹤者是張志新(化名)和其女友劉穎晃财,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體典蜕,經(jīng)...
    沈念sama閱讀 44,186評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡断盛,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,516評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了愉舔。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片钢猛。...
    茶點故事閱讀 38,650評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖屑宠,靈堂內(nèi)的尸體忽然破棺而出厢洞,到底是詐尸還是另有隱情,我是刑警寧澤典奉,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布躺翻,位于F島的核電站,受9級特大地震影響卫玖,放射性物質(zhì)發(fā)生泄漏公你。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,936評論 3 313
  • 文/蒙蒙 一假瞬、第九天 我趴在偏房一處隱蔽的房頂上張望陕靠。 院中可真熱鬧,春花似錦脱茉、人聲如沸剪芥。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,757評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽税肪。三九已至,卻和暖如春榜田,著一層夾襖步出監(jiān)牢的瞬間益兄,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,991評論 1 266
  • 我被黑心中介騙來泰國打工箭券, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留净捅,地道東北人。 一個月前我還...
    沈念sama閱讀 46,370評論 2 360
  • 正文 我出身青樓辩块,卻偏偏與公主長得像蛔六,于是被迫代替她去往敵國和親荆永。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,527評論 2 349

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理国章,服務(wù)發(fā)現(xiàn)屁魏,斷路器,智...
    卡卡羅2017閱讀 134,633評論 18 139
  • 【建滔化工集團】5月11日捉腥,會計,待遇4.6k包吃住 地址:深圳市南山區(qū)馬家龍一街8號 (原深圳太平洋絕緣材料有限...
    輕奢小姐閱讀 808評論 1 1
  • 有人喜歡錢 有人愛玩嗜吃 有人喜歡看書你画、聽音樂 過好自己的生活抵碟,做真實的自己 每個人 都有自己的小快樂
    華小兔漫畫閱讀 223評論 0 1
  • 終于還是寫到簡歷篇了,拖了這么久坏匪,真不是因為博主偷懶拟逮。其實簡歷篇在博主寫面試篇1的時候就在考慮,中間一共寫過4适滓、5...
    紅酒仔閱讀 2,890評論 1 2
  • 好像是個夏天凭迹。 她到達工作地點的時候卻沒有想象的炎熱罚屋,是秋涼。 一米五八的個子嗅绸,頂著一顆飄逸的沙宣腦袋脾猛,略微有些褪...
    潘達兒閱讀 247評論 0 1