爲什麼要使用Git呢
個人在工作或者學習的時候會遇到這種事情:
寫論文:一個論文可能要修改很多次,可能會產生很多個版本
- Java入門到精通.word 原版
- Java入門到精通.word 原版2019.4.20 XXXX.修改了 java歷史
- Java入門到精通.word 修訂版2019.5.20 XXXX.修改了 名字錯誤
- Java入門到精通.word 終極版2019.6.20 XXXX.修改了 名字錯誤
- Java入門到精通.word 最終版2019.7.20
- 辭職信,…
我們需要一個東西來進行版本的控制管理;
那麼這個問題如果發展到一羣人?
比如說我們公司協同開發一個網站:
- 總共的代碼就一份
- 但是會有多個人去共同開發
- 每個人都有每個人的事情,我們無法做到統一;
解決方案: 集中式處理;
- 每個人修改完畢,就提交到一個大家都能訪問到的服務器;
- 每個人要增加或者修改代碼,需要同服務器上拿來最新的代碼;
- 修改完畢後,再次提交,保證服務器中有最新的代碼;
解決方案優化: 分佈式處理;
- 每個人寫完代碼後,立馬將更新的東西告知所有人;
- 每個人都擁有全部的代碼;
- 每個人都是一個獨立的服務器代碼庫;
- 假設一個人的代碼丟了,直接從別人那個拷貝一份即可;
版本控制
在開發或者工作中,你每一次修改都會產生一次對應的記錄,記錄修改者,修改的內容,修改的時間等等。
方便開發人員及時獲取最新的動態,並且知道更新了什麼地方。
簡單的說,就是多人協同開發的一個基礎
分佈式 VS 集中式
分佈式: 開源項目
- 不會被服務器限制
- 所有人可以拿到最新的源代碼
- 不安全。
集中式: 公司內部項目
- 只有一個公共的服務器
- 所有人寫代碼之前,需要去拿最新的代碼過來
- 寫完之後,要及時提交代碼到服務器
- 安全。
Git vs SVN
SVN是集中式版本控制系統,版本庫是集中放在中央服務器的,而工作的時候,用的都是自己的電腦,所以首先要從中央服務器得到最新的版本,然後工作,完成工作後,需要把自己做完的活推送到中央服務器。集中式版本控制系統是必須聯網才能工作,對網絡帶寬要求較高。
Git是分佈式版本控制系統,沒有中央服務器,每個人的電腦就是一個完整的版本庫,工作的時候不需要聯網了,因爲版本都在自己電腦上。協同的方法是這樣的:比如說自己在電腦上改了文件A,其他人也在電腦上改了文件A,這時,你們兩之間只需把各自的修改推送給對方,就可以互相看到對方的修改了。
2. Git起源
Git 是世界上最先進的分佈式版本控制系統;
Git是免費的,開源的;
創始人:Linus Benedict Torvalds
- linux最初只有他一個人維護,後來慢慢越來越多的人加入修改的建議,提交代碼;
- 所有人的代碼,都從世界各地發給他,由他一個人編寫進Linux內核中。他慢慢的就煩了。
- 找一個可以進行版本控制的平臺 ; BitKeeper 免費的給Linux社區使用;
- Linux社區中存在許多大佬,他們試圖破解BitKeeper協議;BitKeeper就不願意再免費給他們使用了;
- 於是乎 Linus ,他花了兩週時間,用c自己寫了一個版本控制的管理系統,而且是分佈式的;
- 這就是後來大名鼎鼎Git ;
- 後來有人基於個Git搭建了開源的平臺 , Github 開源所有人都可以去使用的
- 我們也可以搭建自己的版本庫—GitLib。
- 2019年,在中國的今天,我們選擇使用 碼雲 Gitee 來作爲項目源代碼存放的地方
- 不受網絡的限制
- 國人開發
- 社區十分活躍
- 類似的平臺還有Coding等等。
下載使用Git
官網下載地址:https://git-scm.com/ 官網下載十分的漫長;
淘寶Git鏡像下載地址:http://npm.taobao.org/mirrors/git-for-windows/ 【推薦】
一路傻瓜式安裝即可;推薦博客:Git安裝
我們打開git-bash;
git設置用戶名和郵箱
git安裝完之後第一步就應該是這是用戶名和郵箱;相當於一個標識,你之後每次一提交項目,都會附帶這個信息;
git config --global user.name "小明"
git config --global user.email [email protected]
必須要配置這兩個屬性。
查看Git全部的配置;
git config -l # 查看git的全部配置
git config --global --list #查看當前用戶的配置
這些信息既然可以保存,那麼到底保存在我們系統的什麼地方了呢?
git配置文件存放地址:
系統配置文件; \Git安裝路徑下面\mingw64\etc\gitconfig
Git 工作理論
git的工作目錄有哪些?
- 工作目錄 : 就是自己電腦上的一個屬於git的文件夾;
- 暫存區 :我們看不到,提交的信息暫存在這裏
- Git本地倉庫 :我們看不到 , 通過暫存區提交過來
- Git遠程倉庫 : GitHub、碼雲等等,負責託管我們的項目 , 需要從Git本地倉庫提交過來
獲得一個Git倉庫
本地搭建一個倉庫
- 隨便在一個位置建立一個文件夾
- 在文件夾中右鍵 , git bash here ,在這個文件夾下打開git命令行
- 輸入命令 git init ;
- 發現在文件中多了一個隱藏的文件夾 .git
- 至此,一個本地的git倉庫就搭建成功了。
- 我們先在工作目錄下創建一westos.txt , 寫入一段話,Hello,git
- 通過git add命令將這個文件添加到暫存區 , 通過 git status 查看當前狀態
- 暫存區對應 :.git隱藏文件下的 index文件
- 我們通過 git commit -m “註釋” 提交到本地倉庫
- 通過git status 查看是否提交成功!
- 本地測試OK;
遠程克隆一個倉庫
git clone []
- 我們可以github或者碼雲上去克隆一個項目;
6.搭建自己的遠程倉庫
我們這裏使用碼雲 : https://gitee.com/
- 註冊賬號,註冊的時候可以寫自己的個性域名
- 比如說我的叫 : https://gitee.com/kuangstudy
- 登錄成功後可以瀏覽一會;
什麼是碼雲
碼雲是開源中國社區2013年推出的基於 Git 的完全免費的代碼託管服務,這個服務是基於 Gitlab 開源軟件所開發的,我們在 Gitlab 的基礎上做了大量的改進和定製開發,目前已經成爲國內最大的代碼託管系統,致力於爲國內開發者提供優質穩定的託管服務。
創建你的第一個倉庫
https://gitee.com/help/articles/4122
任務:
- 搭建一個遠程倉庫
- 克隆一個遠程倉庫到本地
- 修改ReadME.md
- push到碼雲遠程倉庫
- 查看提交之後到遠程的信息
將本地電腦碼雲連接起來
打開用戶目錄下,找到id_rsa.pub
碼雲中填寫SSH連接內容
解決問題:沒有id_rsa文件
ssh-keygen -t rsa -C "[email protected]"
ssh-keygen -t rsa -C "youremail"
IDEA中使用Git
配置git:
打開項目:
在IDEA中配置項目集成到Git中;
配置完這一步,項目文件中,產生了一個 .git文件夾,說明項目成立一個git項目
我們可以選擇手動提交,也可以使用IDEA提交,我們選擇使用IDEA
努力加載中