來自bilibili的git學(xué)習(xí)
git作者
是linux的作者(linux的開發(fā)是根據(jù)unix的開源盜版),但是作者為了能夠控制版本,所以開發(fā)了一個版本控制工具,但是當(dāng)時使用的是BotKeeper這個收費(fèi)的軟件,但是為了能夠更好的使用,這個大神就自己開發(fā)了一個
所以說git最早就是管理linux的代碼的,逐步延伸了windows版本和max版本
git和svn的對比
- svn是一個集中式的版本管理工具。使用的時候需要先在服務(wù)器上裝一個svn服務(wù)器,客戶機(jī)直接提交代碼到svn服務(wù)器,所以是一個集中式的代碼管理工具
- git是分布式的版本管理工具,也就是說沒有中央服務(wù)器,在每個客戶機(jī)上都有一個獨(dú)立的版本倉庫。
- git的工作機(jī)制:每個開發(fā)人員都有自己的一個本地版本倉庫,這樣就可以直接和自己的倉庫進(jìn)行信息交換,從而達(dá)到版本的控制,如果是單人項目,那么就可以直接自己使用自己的本地倉庫就完事了。多人項目時,這個時候就需要交換代碼,所以就需要一個遠(yuǎn)程倉庫(共享版本庫),那么每個人需要做的就是將自己的代碼復(fù)制(push)到遠(yuǎn)程倉庫即可,其他人需要代碼時就可以直接在共享倉庫中下載(clone)即可。
- 所以git和svn最大的區(qū)別在于,能夠在不需要多人項目時,git有一個本地倉庫的概念,但是svn沒有,只有自己的獨(dú)立 倉庫就完事了。其實本質(zhì)的原理沒什么區(qū)別,只是操作方式的一點區(qū)別罷了
git的工作流程
首先創(chuàng)建一個本地倉庫
然后就可以向本地倉庫添加代碼
代碼可以放到工作區(qū)
如果需要將工作區(qū)加到本地倉庫中,就需要先將工作區(qū)代碼加到暫存區(qū)中,然后再提交到本地倉庫即可
然后如果需要協(xié)作開發(fā),就可以將本地倉庫向遠(yuǎn)程倉庫復(fù)制一份即可

git的安裝
首先下載安裝git
安裝完成后右鍵可以看到兩個選項
- Git GUI,也就是git的圖形界面
- GIT BASH,也就是git的命令行,在哪個文件下右鍵,顯示的命令行路徑就是在哪個文件下
使用git --version可以看git的版本
TortoiseGit的使用
安裝時選擇使用OpenSSH
注意需要指定git的牡蠣
配置一個姓名和郵箱
安裝完畢即可右鍵多出來三個
Git Clone
Git Create reposity here
TortoiseGit
漢化烏龜
下載 語言包
安裝語言包
然后右鍵setting,選擇language中就可以換語言包了
使用git
創(chuàng)建一個本地倉庫
- 右鍵GIT GUI 選擇createXXX
- GIT BASH直接使用命令git init
- 使用烏龜,有一個創(chuàng)建版本庫,注意不要選擇制作純版本庫(會制作一個不帶目錄的版本庫)
向本地版本庫中添加文件
首先,如果想向本地倉庫中添加文件,那么你建立的文件,就需要在本地倉庫這個目錄下,也就是和.git同級的目錄下
右鍵文件,選擇烏龜?shù)奶砑蛹纯桑ㄗ⒁庵貑ⅲ?br>
這個時候有個+,是在暫存區(qū)中
區(qū)分幾個概念
- 工作目錄就是工作區(qū),也就是和.git在同一級下的那個目錄
- 點擊添加,就添加到了暫存區(qū)
- 點擊右鍵的提交,就可以提交到,其中必須寫一個日志,然后點擊提交,就可以添加到本地倉庫中
修改內(nèi)容
首先,對于烏龜來說,有一個版本庫瀏覽器,可以看到本地倉庫中的文件
修改文件后,可以直接點擊提交到"master",其中需要填寫日志
之后可以右鍵顯示日志來查看版本,還可以比較版本差異
刪除文件
- 誤刪,可以從版本庫中進(jìn)行還原
- 真正想刪除,對文件進(jìn)行刪除之后,可以點擊提交,并寫上日志,點擊提交
這樣版本庫瀏覽器中就沒有了對應(yīng)的文件 - 只刪除版本庫中的文件,但是保留本地文件,就可以選擇刪除保留本地副本
實戰(zhàn)
將java工程加到本地倉庫
首先,放到對應(yīng)的本地倉庫同級目錄下
其次添加到暫存區(qū)
注意的是,這個時候可能需要忽略一些文件,因為對于版本控制來說我們只需要關(guān)注代碼就可以了,所以像.idea和out目錄都可以Image2.png
不要
忽略的操作,選中對應(yīng)文件夾,點擊右鍵,點擊刪除并添加到忽略列表,選擇根據(jù)名稱刪除和忽略,選擇遞歸,也就是忽略該文件夾下的文件和文件夾
跟著一些操作就完事了
這樣會生成一個.gitgnore,其中的信息就是忽略的文件夾的名稱,這樣的話,這個問價 也需要加到版本庫 中
遠(yuǎn)程倉庫github(gitee中國的)
這個就可以幫助我們來多人協(xié)助工作
我們在github上手動創(chuàng)建一個project
然后記得不要選擇建立一個README這個選項
將本地倉庫推送到遠(yuǎn)程
- SSH方式(需要ssh的公鑰密鑰之間建立連接)
兩步,第一步,建立連接
第二步,推送本地倉庫信息
實戰(zhàn)生成密鑰對$ ssh-keygen -t rsa一路回車就完事了
生成在當(dāng)前用戶目錄下的.ssh目錄下,其中有后綴是.pub的就是公鑰,沒有的就是私鑰,打開公鑰,復(fù)制內(nèi)容,放在github中在github中選擇setting,選擇ssh and GPG keys,在其中寫上title,將公鑰復(fù)制在里面就好了,然后保存即可以,只需要設(shè)置一次,針對當(dāng)前用戶就可以了
然后就可以建立連接,git remote add origin +github給出的那個路徑
推送本地倉庫git push -u origin master ,然后就可以推送去了
實際操作
首先有一個ssh協(xié)議來保證安全,然后建立連接,然后推出自己的本地倉庫
-
圖形界面
-- 1.首先確認(rèn)該烏龜使用的是我們與github之間定義的那個ssh管理關(guān)系
Image3.png
對應(yīng)的就是Git->user->bin->ssh.exe
-- 2.建立連接,第一個名稱,一般都叫做origin(無所謂),url在github中獲取
putty密鑰建立好的ssh私鑰(記得選擇全部文件)

-- 3.然后點擊推送即可
未操作成功,待續(xù)。。。。
- 使用https進(jìn)行推送
這個就比較簡單了,直接使用圖形化界面,就是直接輸入遠(yuǎn)端和URL即可,在推送的時候會需要輸入github的密碼
總結(jié)一下推送到遠(yuǎn)程倉庫
對于ssh來說,第一步是需要建立一個ssh的協(xié)議,獲取ssh的密鑰
對于https,就直接使用就可以了
在實際操作中,只需要建立好origin就可以將該次項目,多次向一個github的project中多次簡介的推送,即點擊對應(yīng)的推送按鈕就可以實現(xiàn)推送
但是其實無論怎么樣都可以推送到github,所以為什么不選擇一個簡單的方式呢
從遠(yuǎn)程倉庫克隆一個倉庫到本地
- 建立一個目錄
- 使用命令行 git clone +github給出的路徑
git clone xxx
搭建一個私有的git服務(wù)器
在linux中操作,解決的是項目代碼需要保密,這種情況下不能將代碼放在github上,所以就需要搭載一個私有的git服務(wù)器,需要的時候再學(xué)習(xí)
在idea上使用git
- 首先在idea中配置一下git
setting->Version Control ->Git
選擇一下git.exe的路徑即可 -
創(chuàng)建一個本地倉庫,也就是將該項目所在目錄的上一次目錄建立成一個本地倉庫
Image5.png

這樣就可以將該項目添加到暫存區(qū)了
然后點擊右上角新出現(xiàn)的git中的對號就可以commit到本地倉庫了

這里可以選擇想要導(dǎo)入提交到本地倉庫的哪些信息
還可以寫上對應(yīng)的日志文件
將本地代碼推到共享倉庫(github)
操作時VCS->Git->push->Define remote
使用https方式,添加上url即可push,其中需要輸入github賬戶和密碼
從遠(yuǎn)程倉庫clone

添加上URL即可clone(使用https的方式)
然后一直下一步就完事了
總結(jié)
首先是創(chuàng)建一個項目,然后從VCS->Import Into Version Control->Create git Repository,選擇該項目的上一級目錄,也就是在該項目同級的地方建立一個.git文件夾
項目修改完畢之后,可以點擊右上角的對鉤,在彈出的頁面中寫上日志以及選擇需要添加到本地倉庫的文件夾和文件,然后就可以添加到本地倉庫
然后點擊VCS->GIt->Push->Define remote ->寫上github的https的地址即可實現(xiàn)本地倉庫push到共享倉庫
小知識點
1.SSH是什么,是一個現(xiàn)在較為可靠的一個遠(yuǎn)程通信協(xié)議專為遠(yuǎn)程登錄 會話和其他網(wǎng)絡(luò)服務(wù)提供安全性的協(xié)議,可以有效防止信息的泄露;是基于密鑰的安全驗證,


