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