git版本控制工具入門教程(使用IDEA)

歷史
Linux開源項目使用bitkeeper分佈式版本控制系統來管理和維護代碼,bitkeeper與Linux終止合作關係後,Linux團隊開發了自己的分佈式版本控制系統git。

git和svn的區別:
①svn是集中式管理工具,必須連接到服務器上才能進行代碼的提交、修改等操作,如果出現單點故障,就無法繼續正常工作。②git是分佈式管理工具,沒有中央服務器,每個人的電腦就是一個完整的版本庫。

git工作流程

①從遠程倉庫clone資源到本地倉庫。
②從本地倉庫中checkout代碼到工作區然後進行代碼修改。
③在提交前先將代碼從工作區add到暫存區。
④提交修改,從暫存區commit到本地倉庫,本地倉庫中保存修改的各個歷史版本。
⑤修改完成後,需要和團隊共享代碼時,可以將代碼push到遠程倉庫。
在這裏插入圖片描述

安裝

之前安裝過了,很久沒有用,打開命令行,用git clone https://github.com/git/git更新一下git的版本。
在這裏插入圖片描述
更新完畢後通過git --version查詢當前版本
在這裏插入圖片描述
還需要下載一個tortoisegit
在這裏插入圖片描述
安裝時注意這一步選ssh
在這裏插入圖片描述
安裝語言包後refresh就有中文了
在這裏插入圖片描述
目錄就選git的bin目錄
在這裏插入圖片描述
用戶名和郵箱隨便填就行了,下一步確定左邊選項是SSH,然後點完成
在這裏插入圖片描述


本地倉庫

創建本地倉庫

可以在桌面新創建目錄repository/repo1,右鍵git bash here,使用git init,之後會出現一個.git目錄(需要顯示隱藏項目)
在這裏插入圖片描述

向本地倉庫添加文件

.git就是本地版本庫,包含.git的目錄repo1就是工作目錄,添加的文件應該放在工作目錄下,也就是repo1中。
創建一個hello.txt,隨便輸入一些字符,按以下步驟添加
在這裏插入圖片描述
點擊確定後提示添加完成,點擊確定,此時文件就加入了暫存區
在這裏插入圖片描述
將文件從暫存區提交至本地倉庫,右鍵選擇提交
在這裏插入圖片描述
必須要添加日誌信息,然後提交
在這裏插入圖片描述
在這裏插入圖片描述
重啓後會發現提交的hello.txt多了綠色的勾,很不爽的是其他文件都給我標上了問號。。
這時把C:/Users/用戶名/.git文件夾刪掉刷新就可以了
在這裏插入圖片描述
在這裏插入圖片描述


修改本地倉庫文件內容並提交

如果修改了文件內容,會變成紅色的感嘆號
在這裏插入圖片描述
再次提交,添加對應的日誌信息
在這裏插入圖片描述
提交成功後又變成綠色
在這裏插入圖片描述
通過顯示日誌可以查看修改信息
在這裏插入圖片描述
在這裏插入圖片描述


刪除本地倉庫文件和恢復

直接右鍵刪除
在這裏插入圖片描述
如果需要恢復:
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
如果想要真正地刪除掉,則刪除後進行一次提交,此時便徹底刪除無法恢復
在這裏插入圖片描述


將Java工程添加到本地倉庫

向將Java工程拷貝到本地倉庫目錄下
在這裏插入圖片描述
右鍵添加到暫存區
在這裏插入圖片描述
將無用的.idea和out目錄忽略掉
在這裏插入圖片描述
選擇保留本地文件,然後將.gitnore添加,最後返回上一級目錄提交
在這裏插入圖片描述
成功提交
在這裏插入圖片描述


遠程倉庫

在github創建遠程倉庫

注意不要勾選使用readme初始化
在這裏插入圖片描述

創建SSH密鑰並在GitHub配置公鑰

在本地倉庫通過ssh-keygen -t rsa創建密鑰
在這裏插入圖片描述
一般創建在用戶的.shh目錄下
在這裏插入圖片描述
記事本打開.pub結尾的公鑰,在GitHub的設置裏配置
在這裏插入圖片描述

使用SSH方式將本地倉庫推送到遠程

打開剛纔創建的遠程倉庫,找到推送本地倉庫的命令
在這裏插入圖片描述
在本地倉庫使用命令行推送
在這裏插入圖片描述
再次刷新後發現exam工程已被推送進來
在這裏插入圖片描述

使用tortoisegit

創建一個新的遠程倉庫
在這裏插入圖片描述
在本地倉庫右鍵git 同步
在這裏插入圖片描述
點擊管理
在這裏插入圖片描述
配置時先將網絡的ssh客戶端設置爲本機git下的ssh.exe
在這裏插入圖片描述
設置遠端url爲遠程倉庫url,putty密鑰是之前ssh密鑰中不帶pub結尾的私鑰
在這裏插入圖片描述
之後確定,然後點擊推送
在這裏插入圖片描述
刷新myRepo2遠程倉庫,已經被推送進來
在這裏插入圖片描述


使用https推送

再創建一個新的倉庫
在這裏插入圖片描述
在本地倉庫使用tortoisegit,配置遠端,url爲遠程倉庫的https地址,直接複製瀏覽器地址欄就行
在這裏插入圖片描述
點擊確定,選是,然後推送
在這裏插入圖片描述

克隆遠程倉庫到本地

使用SSH
在這裏插入圖片描述
複製該地址,在本地倉庫打開bash命令行,使用git clone 複製的地址進行clone
在這裏插入圖片描述
使用HTTPS
在這裏插入圖片描述
右鍵git克隆
在這裏插入圖片描述
將https地址複製到url欄
在這裏插入圖片描述
克隆成功
在這裏插入圖片描述


推送/拉取修改的文件

在這裏插入圖片描述
在本地倉庫創建一個update.txt,然後添加到暫存區,添加到本地倉庫,推送到遠程倉庫
在這裏插入圖片描述
在這裏插入圖片描述
刷新遠程倉庫,已更新
在這裏插入圖片描述


本地倉庫拉取已更新的文件
在這裏插入圖片描述
在git同步裏選擇拉取即可
在這裏插入圖片描述


文件衝突問題

現在repo1和myRepo中都有update.txt文件,分別對其修改並提交到本地倉庫
在這裏插入圖片描述
在這裏插入圖片描述
repo1提交後,再推送到遠程倉庫,推送成功
在這裏插入圖片描述
之後在myRepo中修改,並提交本地
在這裏插入圖片描述
提交成功
在這裏插入圖片描述
但是推送至遠程倉庫時會失敗,因爲遠程倉庫update.txt已經被repo1修改過,現在myRepo中不是最新的了,類似於Java的CAS機制。。repo1和myRepo都取到的是update.txt,同時修改,repo1要更新時發現沒被更新過,直接更新,myRepo更新時發現已經被更新了,所以推送失敗。。
在這裏插入圖片描述
不能推送,選擇拉取
在這裏插入圖片描述
選擇解決衝突
在這裏插入圖片描述
打開文件把這3行刪掉
在這裏插入圖片描述
只會提交到本地倉庫,然後推送
在這裏插入圖片描述
此時遠程倉庫中成功更新
在這裏插入圖片描述


私有遠程倉庫

創建Linux上的私有git服務器

我使用的是centos8的虛擬機
使用yum install git下載並安裝git
在這裏插入圖片描述
安裝完畢後用git --version查詢安裝版本
adduser -r -c 'git version control' -d /home/git -m git在/home/git創建git用戶,然後更改git用戶的密碼
在這裏插入圖片描述
切換到git用戶 cd進到主目錄 創建一個repo1倉庫
在這裏插入圖片描述
使用git init --bare初始化
在這裏插入圖片描述

推送至linux遠程倉庫

在windows的本地倉庫推送,將url進行如下設置,192.168.2.142是我虛擬機的ip地址
(我壓根沒想到能連上 我虛擬機是橋接模式 我不知道ip地址怎麼找 用secureCRT連了一下午都沒成功 本來準備放棄的。。。我也不懂)
在這裏插入圖片描述
過程中就輸入剛纔git用戶的密碼
在這裏插入圖片描述

從遠程倉庫克隆

在這裏插入圖片描述
url和剛纔的相同
在這裏插入圖片描述
之後會讓你輸入git用戶的密碼
在這裏插入圖片描述
成功後打開復制的倉庫
在這裏插入圖片描述


分支

在我們每次的提交,Git都把它們串成一條時間線,這條時間線就是一個分支。截止到目前,只有一條時間線,在Git裏,這個分支叫主分支,即master分支。HEAD指針嚴格來說不是指向提交,而是指向master,master纔是指向提交的,所以HEAD指向的就是當前分支。

比如說鋼鐵俠MK1就是master,MK6就是MK1的一個分支,MK7也是MK1的一個分支,MK6和MK7就是MK1的兩個分支,它們之間的開發是不會互相影響的,類似於二叉樹。分支也是可以合併的,例如MK6和MK7合體爲MK50,就是master。

創建分支

在repo1倉庫右鍵創建一個分支
在這裏插入圖片描述
起名爲branch
在這裏插入圖片描述

分支的合併與衝突解決

在當前(master)分支創建一個master.txt,添加到暫存區並提交到本地倉庫
在這裏插入圖片描述
在這裏插入圖片描述
然後修改update的內容,並提交到master分支
在這裏插入圖片描述
在這裏插入圖片描述
現在切換到branch分支
在這裏插入圖片描述
在這裏插入圖片描述
可以發現branch分支是沒有master.txt文件的,update也沒有被修改,創建branch.txt,並修改update的內容然後提交
在這裏插入圖片描述
在這裏插入圖片描述
切換回master分支,進行合併
在這裏插入圖片描述
合併分支選branch
在這裏插入圖片描述
多出了branch分支創建的文件
在這裏插入圖片描述
打開update 移除這3句話
在這裏插入圖片描述
解決衝突
在這裏插入圖片描述
提交到master
在這裏插入圖片描述
成功
在這裏插入圖片描述


在IDEA操作git

配置git

創建一個新項目 gitTest
在這裏插入圖片描述
在settings裏搜索git配置路徑 可以用test嘗試,配置後選擇OK
在這裏插入圖片描述
在src創建一個類,隨便寫點什麼
在這裏插入圖片描述

創建本地倉庫

在VCS裏創建本地倉庫
在這裏插入圖片描述
選擇當前項目的父目錄IdeaProjects,選擇ok
在這裏插入圖片描述
之後查看該目錄,會發現多出了.git目錄
在這裏插入圖片描述

添加到暫存區

回到idea右鍵項目add到暫存區
在這裏插入圖片描述

提交到倉庫

點擊IDEA右上角的綠色對勾提交
在這裏插入圖片描述
選擇src和.imi的配置文件,然後添加註釋,提交
在這裏插入圖片描述
在這裏插入圖片描述
之後再添加的代碼會被綠色標註
在這裏插入圖片描述
在這裏插入圖片描述

推送到遠程倉庫

從VCS->git->push
在這裏插入圖片描述
點擊define remote,複製githunb的遠程倉庫的url
在這裏插入圖片描述
點擊push,會要求輸入GitHub的賬戶和密碼
在這裏插入圖片描述
這裏我push失敗了,貌似是因爲版本不一致原因,我重新創建一個倉庫
在這裏插入圖片描述
按照之前得步驟push到這個倉庫,成功了~
在這裏插入圖片描述
刷新一下 發現遠程倉庫也更新了
在這裏插入圖片描述

從遠程倉庫克隆

在這裏插入圖片描述
將githunb的倉庫https地址複製到url
在這裏插入圖片描述
在這裏插入圖片描述
一路選yes和next,clone成功
在這裏插入圖片描述
添加一行代碼,提交,推送
在這裏插入圖片描述
打開github 已更新
在這裏插入圖片描述

從遠程倉庫拉取

打開一開始的舊代碼
在這裏插入圖片描述
點擊拉取
在這裏插入圖片描述
拉取成功
在這裏插入圖片描述

使用分支

創建
在這裏插入圖片描述
創建一個分支叫dev
此時當前分支是dev,哪個分支上有標籤,哪個就是當前分支
在這裏插入圖片描述
增加一個方法
在這裏插入圖片描述
提交
在這裏插入圖片描述
點擊checkout回到master
在這裏插入圖片描述
此時不再有dev方法
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章