【Git】git的基本使用
文章目錄
- Git
- 一、git的基礎知識
- 1.三種版本控制
- 2.Git與SVN的主要區別
- 二、git 創建倉庫
- 三、git的必要配置
- 四、git的基本原理
- 1.三個區域
- 2.工作流程
- 五、git 基本操作
- 六、git的提交文檔
- 1.忽略文件
- 七、配置ssh公鑰
- 八、使用idea中集成Git
- 九、git分支
- 十、git查看提交歷史
Git
一、git的基礎知識
1.三種版本控制
本地版本控制
集中版本控制 SVN
分布式版本控制 Git
2.Git與SVN的主要區別
SVN是集中式版本控制系統,版本庫是集中放在中央服務器的,而工作的時候,用的都是自己的電腦,所以首先要從中央服務器得到最新的版本,然后工作,完成工作后,需要把自己做完的活推送到中央服務器。集中式版本控制系統是必須聯網才能工作,對網絡帶寬要求較高。
Git是分布式版本控制系統,沒有中央服務器,每個人的電腦就是一個完整的版本庫,工作的時候不需要聯網了,因為版本都在自己電腦上。協同的方法是這樣的:比如說自己在電腦上改了文件A,其他人也在電腦上改了文件A,這時,你們兩之間只需把各自的修改推送給對方,就可以互相看到對方的修改了。Git可以直接看到更新了哪些代碼和文件!
二、git 創建倉庫
# 1-1 使用當前目錄作為git倉庫,并初始化它,執行完該命令后,目錄中會生成一個 .git目錄 git init# 1-2 選擇指定目錄作為git倉庫,若不存在就創建該目錄;執行完該命令后,會在gitTest目錄中生成一個.git目錄 git init gitTest# 2 從git倉庫中clone項目 git clone [url|address]三、git的必要配置
#查看配置的列表清單 git config -l #查看系統的配置 git config --system --list #查看本地配置(用戶自己配置的) git config --global --list #設置本地名和本地郵箱 git config --global user.name "FFIDEAL" git config --global user.email "1359975927@qq.com"四、git的基本原理
1.三個區域
Git本地有三個工作區域:工作目錄(Working Directory)、暫存區(Stage/Index)、資源庫(Repository或Git Directory)。如果在加上遠程的git倉庫(Remote Directory)就可以分為四個工作區域。文件在這四個區域之間的轉換關系如下:
- Workspace:工作區,就是你平時存放項目代碼的地方
- Index / Stage:暫存區,用于臨時存放你的改動,事實上它只是一個文件,保存即將提交到文件列表信息
- Repository:倉庫區(或本地倉庫),就是安全存放數據的位置,這里面有你提交到所有版本的數據。其中HEAD指向最新放入倉庫的版本
- Remote:遠程倉庫,托管代碼的服務器,可以簡單的認為是你項目組中的一臺電腦用于遠程數據交換
本地的三個區域確切的說應該是git倉庫中HEAD指向的版本:
- Directory:使用Git管理的一個目錄,也就是一個倉庫,包含我們的工作空間和Git的管理空間。
- WorkSpace:需要通過Git進行版本控制的目錄和文件,這些目錄和文件組成了工作空間。
- .git:存放Git管理信息的目錄,初始化倉庫的時候自動創建。
- Index/Stage:暫存區,或者叫待提交更新區,在提交進入repo之前,我們可以把所有的更新放在暫存區。
- Local Repo:本地倉庫,一個存放在本地的版本庫;HEAD會只是當前的開發分支(branch)。
- Stash:隱藏,是一個工作狀態保存棧,用于保存/恢復WorkSpace中的臨時狀態。
2.工作流程
git的工作流程一般是這樣的:
1、在工作目錄中添加、修改文件;
2、將需要進行版本管理的文件放入暫存區域;
3、將暫存區域的文件提交到git倉庫。
因此,git管理的文件有三種狀態:已修改(modified),已暫存(staged),已提交(committed)
五、git 基本操作
# 1.本地->遠程,本地代碼提交到暫存區 git add .# 2.暫存區代碼提交到本地倉庫 git commit -m [message]# 3.本地倉庫提交到遠程倉庫 git push# 4.遠程->本地,遠程代碼直接下載到本地 git clone [url]# 5.查看倉庫當前的狀態,顯示有變更的文件。 git status# 6.比較文件的不同,即暫存區和工作區的差異。 git diff [file]# 7-1.回退上上個版本 git reset head^^ [file] # 7-2.回退上上個版本 git reset hard head^2 [file] # 7-3.回退到指定版本 git reset 56152HEAD 說明:
- HEAD 表示當前版本
- HEAD^ 上一個版本
- HEAD^^ 上上一個版本
- HEAD^^^ 上上上一個版本
- 以此類推…
可以使用 ~數字表示
- HEAD~0 表示當前版本
- HEAD~1 上一個版本
- HEAD^2 上上一個版本
- HEAD^3 上上上一個版本
- 以此類推…
六、git的提交文檔
版本控制就是對文件的版本控制,要對文件進行修改、提交等操作,首先要知道文件當前在什么狀態,不然可能會提交了現在還不想提交的文件,或者要提交的文件沒提交上。
- Untracked: 未跟蹤, 此文件在文件夾中, 但并沒有加入到git庫, 不參與版本控制. 通過git add 狀態變為Staged.
- Unmodify: 文件已經入庫, 未修改, 即版本庫中的文件快照內容與文件夾中完全一致. 這種類型的文件有兩種去處, 如果它被修改, 而變為Modified. 如果使用git rm移出版本庫, 則成為Untracked文件
- Modified: 文件已修改, 僅僅是修改, 并沒有進行其他的操作. 這個文件也有兩個去處, 通過git add可進入暫存staged狀態, 使用git checkout 則丟棄修改過, 返回到unmodify狀態, 這個git checkout即從庫中取出文件, 覆蓋當前修改 !
- Staged: 暫存狀態. 執行git commit則將修改同步到庫中, 這時庫中的文件和本地文件又變為一致, 文件為Unmodify狀態. 執行git reset HEAD filename取消暫存, 文件狀態為Modified
流程
# 11.查看文件狀態 git status # 12.將本地代碼加在暫存區 git add . # 13.將暫存區中的代碼加載到本地倉庫 git commit -m "new file hello.txt"1.忽略文件
有些時候我們不想把某些文件納入版本控制中,比如數據庫文件,臨時文件,設計文件等
在主目錄下建立".gitignore"文件,此文件有如下規則:
七、配置ssh公鑰
1.使用GitHub或碼云注冊一個賬號,我這里以github為例。與github相連
$ ssh-keygen #在c/Users/dell/.ssh生成文件 加密算法ssh-keygen -t rsa2.設置本機綁定SSH公鑰,實現免密碼登錄!(免密碼登錄,這一步挺重要的,碼云是遠程倉庫,我們是平時工作在本地倉庫!)
在c/Users/dell/.ssh找到id_rsa.pub,將里面的公鑰復制到
3.使用github新建一個自己的倉庫
通過
將該倉庫下載下來
八、使用idea中集成Git
1.將遠程下載的代碼copy到當前項目中(高效方便)
2.修改文件,使用idea操作git提交
可以在命令行中提交
#提交三部曲 #1.將本地文件上傳到暫存區 $ git add . #2.將暫存區文件上傳到本地倉庫中 $ git commit #3.將本地倉庫中的文件上傳到遠程倉庫中 $ git push#在Github上創建好Git倉庫之后我們就可以和本地倉庫進行關聯了, #根據創建好的Git倉庫頁面的提示,可以在本地test倉庫的命令行輸入: $ git remote add origin https://github.com/dflion/-SpringBoot-.git#關聯好之后我們就可以把本地庫的所有內容推送到遠程倉庫(也就是Github)上了,通過: $ git push -u origin master#如果新建遠程倉庫不是空的,例如你勾選了 Initialize this repository with a README。那么你通過命令 $ git push -u origin master是會報錯,這是由于你新創建的那個倉庫里面的README文件不在本地倉庫目錄中,這時我們可以通過以下命令先將內容合并以下: $ git pull --rebase origin master 再輸入$ git push origin master。等遠程倉庫里面有了內容之后,下次再從本地庫上傳內容的時候只需下面這樣就可以了: $ git push origin master。 至此就完成了將本地項目上傳到Github的整個過程。九、git分支
# 14-1.查看分支 git branch # 14-2.查看遠程的分支 git branch -r # 14-3.新建一個分支,但停留在當前分支 git branch dev # 14-4.新建一個分支,并切換分支 git checkout -b [branch] # 14-5.已有的兩個分支之間的切換 git checkout [branch] # 14-6.合并指定分支到當前分支 git merge [branch] # 14-7.刪除分支 git branch -d [branch-name] # 14-8.刪除遠程分支 git push origin --delete [branch-name] git branch -dr [remote/branch]多個分支如果并行執行,就會導致版本不沖突,也就是同時存在多個版本
如果同一個文件在合并分支時都被修改了則會引起沖突:解決的辦法是我們可以修改沖突文件后重新提交!選擇要保留他的代碼還是你的代碼!
十、git查看提交歷史
# 15-1.查看歷史提交記錄。 git log # 15-2.查看歷史記錄的簡潔的版本 git log --oneline# 16.-a 選項意為"創建一個帶注解的標簽"。 git tag -a v1.0 de54f7總結
以上是生活随笔為你收集整理的【Git】git的基本使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Spring MVC 之应用篇】3_S
- 下一篇: 【LeetCode】0395.至少有K个