Git 简易食用指南 v2.0
寫在前面
一開始我們先聊一聊版本控制,什么是版本控制呢?
版本控制是一種記錄一個(gè)或若干文件內(nèi)容變化,以便將來查閱特定版本修訂情況的系統(tǒng)。具體大類分為:
- 本地版本控制系統(tǒng)
- 集中式版本控制系統(tǒng)SVN
- 分布式版本控制系統(tǒng) Git
?
Why Git ?
為什么我們要食用 Git 呢?來看看他的優(yōu)勢(shì)吧!
Git 誕生于2005,Linux開源社區(qū)
- 速度
- 簡(jiǎn)單的設(shè)計(jì)
- 允許上千個(gè)并行分支
- 分布式
都是他的優(yōu)點(diǎn)。
在進(jìn)行簡(jiǎn)單的介紹之后,接下來我們就可以開始進(jìn)行食用了。
?
?
下載、安裝和配置
去到https://git-scm.com/官網(wǎng)下載即可
在終端中使用?git --version?查看git的版本
使用?git config --global user.name ""和?git config --global user.email ""?創(chuàng)建用戶和郵箱
使用?git config --list (或git config -l)查看用戶列表
創(chuàng)建"倉(cāng)庫"
在IDEA的Terminal中直接輸入git init用ls -la查看就發(fā)現(xiàn)了目錄文件下面已經(jīng)存在了.git的文件,這些文件是隱藏的。
使用git init直接加名稱,在創(chuàng)建文件的同時(shí)進(jìn)行"倉(cāng)庫"的搭建
或者從github上直接克隆、下載到git
復(fù)制地址之后 使用git clone https://github.com/xxxxx進(jìn)行克隆到本地
基本用法
git status ==> 查看倉(cāng)庫狀態(tài)
下圖顯示No commits yet,說明還沒有歷史節(jié)點(diǎn),并說明了以下文件都屬于比較危險(xiǎn)的狀態(tài)
所以我們需要進(jìn)行新建
git add . ==> 將所有文件添加至?xí)捍鎱^(qū)
之后再次使用git status命令查看狀態(tài),發(fā)現(xiàn)之前紅色的文件都變色了,說明他們暫時(shí)安全了
git commit -m "版本描述"?==> 提交版本或備注描述信息
在提交完版本描述之后,我們?cè)俅问褂胓it status查看狀態(tài),提示我們nothing to commit,working tree clean。說明所有的更改都保存了
在這個(gè)時(shí)候,也說明。我們已經(jīng)有一顆"后悔藥"了!,即是我們已經(jīng)有一個(gè)可回溯節(jié)點(diǎn)了。
?
git log ==> 查看詳細(xì)日志信息
git log -p可以查詢具體修改了什么
在輸入?git log?之后,我們可以看到 commit 之后有很長(zhǎng)一段字符,可以理解為這個(gè)節(jié)點(diǎn)的"名字"、"身份證號(hào)",用來絕對(duì)定義這個(gè)節(jié)點(diǎn)。
回溯!吃"后悔藥"!
git reset --hard 456ba1a84e007da35e5e611737aeec9de2581932(commit后面的"身份證",ps:7位以上即可)
如上圖,我希望將 blog demo v1.2 版本的代碼回溯到 v1.1 的時(shí)候
輸入?git reset --hard 456ba1a84e007da35e5e611737aeec9de2581932?之后可以看到提示
HEAD is now at cca2043 blog demo v1.1版本
點(diǎn)擊Version Control也可以查看版本間的區(qū)別和改動(dòng)
如果有文件被誤刪掉,可以使用git checkout來找回
git checkout xxx?(誤刪的文件名)
?
三種狀態(tài)
modified 已修改 ==> staged 已暫存 ==> committed 已提交
staged 是緩沖階段,以防錯(cuò)誤引入了較大的文件,防止錯(cuò)誤的引入
?
?
tag標(biāo)簽
我們的代碼版本,有小修小改的過程,但當(dāng)我們的代碼大版本確立的時(shí)候,就相當(dāng)于一個(gè)里程碑節(jié)點(diǎn),這個(gè)時(shí)候就需要tag標(biāo)簽用來注解
git tag -a 標(biāo)簽名 -m "備注"
并使用?git tag?查看有多少tag標(biāo)簽
使用git show?查看 tag 標(biāo)簽的詳細(xì)信息,諸如是誰添加的,添加了什么內(nèi)容等
如果之前有小的版本我也想用來添加tag標(biāo)簽,但他們的時(shí)間節(jié)點(diǎn)已經(jīng)是過去式了,怎么辦呢?
這時(shí)使用?git tag -a v0.5 -m "備注" + "身份證號(hào)"?可以給之前歷史記錄的回溯節(jié)點(diǎn)添加tag標(biāo)簽
我們也可以使用 git checkout v1 來回溯名稱為v1的tag標(biāo)簽節(jié)點(diǎn)
?
分支與合并分支
類似于在不同的時(shí)間線創(chuàng)造一個(gè)平行世界,在一個(gè)節(jié)點(diǎn)創(chuàng)造出一個(gè)分支
使用?git branch "分支名稱"?創(chuàng)建分支
在項(xiàng)目中,需要進(jìn)行分支開發(fā)之后再整合功能的時(shí)候需要用到分支
分支也可以用來處理一個(gè)節(jié)點(diǎn)的 bug 問題,找到中間的節(jié)點(diǎn) 不影響后面正在開發(fā)的時(shí)間線,可以用來"救火"
在 master下使用?git merge "分支名"用來合并分支
然后需要在IDEA中手動(dòng)刪除多余的關(guān)于提示的代碼 "========="
?
分支 救火之前...
?
合并分支 救火之后...
?
?
遠(yuǎn)程倉(cāng)庫
在 local 本地創(chuàng)建一套倉(cāng)庫,并且在很遠(yuǎn)很遠(yuǎn)的其他地方遠(yuǎn)程備份另一套倉(cāng)庫,內(nèi)容都是一樣的,甚至可以在添加后續(xù)節(jié)點(diǎn)的時(shí)候,也一樣同步過去。
在github上我們創(chuàng)建一個(gè)遠(yuǎn)程倉(cāng)庫 并獲得一個(gè)url地址
git remote add "遠(yuǎn)程名稱" "遠(yuǎn)程地址url"
例如這里 我們使用?git remote add github https://github.com/evenyao/easy-blog-demo.git
git remote 可以顯示所有連接的遠(yuǎn)程倉(cāng)庫
使用?git push -u "遠(yuǎn)程名" "分支名"上傳代碼
并確認(rèn)github用戶名/密碼
然后我們刷新 github 頁面,發(fā)現(xiàn)代碼已經(jīng)上傳上去了,也可以看到之前我們創(chuàng)建的倉(cāng)庫版本
然后在需要容災(zāi)的時(shí)候 使用?git clone "遠(yuǎn)程倉(cāng)庫url" 進(jìn)行拷貝
?
?
多人遠(yuǎn)程協(xié)作
git clone "遠(yuǎn)程倉(cāng)庫url" "用戶標(biāo)記"
例如git clone https://github.com/evenyao/easy-blog-demo.git even
git clone https://github.com/evenyao/easy-blog-demo.git root
在 even 和 root 的協(xié)作過程當(dāng)中,even修改了文件,添加了工程中的一項(xiàng)代碼
在even進(jìn)行g(shù)it add. && git commit -m "v1.1"添加版本上傳之后,root需要使用 git pull 將even修改之后代碼拖下來
然后再次進(jìn)行修改,并也使用git add. && git commit -m "v1.2"添加版本上傳之后,even之后也使用 git pull 將root修改的代碼拖下來
?
SSH
當(dāng)我們創(chuàng)建一個(gè)新github項(xiàng)目,也可以使用https地址作為克隆的站點(diǎn)地址
另外一種方式就是SSH,但這種方法必須要進(jìn)行私鑰公鑰的配置
我們先點(diǎn)擊頭像 選擇Settings
選擇左邊欄個(gè)人設(shè)置中的SSH and GPG keys
在 SSH keys 中 可以點(diǎn)擊 generating SSH keys 查看指引
新建 則是選擇 New SSH key
在Generating a new SSH key and adding it to the ssh-agent中可以查看完整的創(chuàng)建流程
創(chuàng)建流程指引
演示操作
使用ssh-keygen -t rsa -b 4096 -C "invictus@vip.qq.com"開始進(jìn)行設(shè)置流程
創(chuàng)建完畢之后我們?cd?到這個(gè)目錄?ls?查看當(dāng)前 .ssh 文件夾下面的文件 顯示有?id_rsa和?id_rsa.pub?
?
使用cat id_rsa.pub命令顯示出公鑰的相信信息
并將下面的公鑰全部復(fù)制
將其粘貼到 SSH key 欄中,然后選擇 Add SSH key (當(dāng)然也不要忘了添加Title)
這樣一個(gè) SSH key 就算添加完成了
我們也可以通過 git 進(jìn)行ssh的 clone 和 push了
?
轉(zhuǎn)載于:https://www.cnblogs.com/evenyao/p/9231424.html
總結(jié)
以上是生活随笔為你收集整理的Git 简易食用指南 v2.0的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: react学习(四)之设置 css样式
- 下一篇: netcore命令行部署|跨域问题