Git是一個版本管理控制系統(縮寫VCS),它可以在任何時間點,將文檔的狀態作為更新記錄保存起來,也可以在任何時間點,將更新記錄恢復回來。
文章目錄
前言
一、git是什么
二、git基本概念
三、git基本命令
總結
前言
Git是一個版本管理控制系統(縮寫VCS),它可以在任何時間點,將文檔的狀態作為更新記錄保存起來,也可以在任何時間點,將更新記錄恢復回來。
提示:以下是本篇文章正文內容,下面案例可供參考
一、git是什么
Git是一個版本管理控制系統(縮寫VCS),它可以在任何時間點,將文檔的狀態作為更新記錄保存起來,也可以在任何時間點,將更新記錄恢復回來。
在開發中,Git已成為現在主流的一種代碼托管技術(版本管理工具),基本上大多數的公司都在使用Git進行協同開發。很多代碼托管平臺也是基于Git來實現的。
Git特點
優點:
- 適合分布式開發,強調個體;
- 公共服務器壓力和數據量都不會太大;
- 速度快、靈活;
- 任意兩個開發者之間可以很容易的解決沖突;
- 離線工作。
缺點:
- 代碼保密性差,一旦開發者把整個庫克隆下來就可以完全公開所有代碼和版本信息;
- 權限控制不友好;如果需要對開發者限制各種權限的建議使用SVN。
- Git與SVN的區別
- SVN是集中式版本控制系統,而Git是分布式版本控制系統,Git與SVN的區別可參考Git與SVN的區別。。
二、git基本概念
- 工作區:倉庫的目錄。工作區是獨立于各個分支的。
- 暫存區:數據暫時存放的區域,類似于工作區寫入版本庫前的緩存區。暫存區是獨立于各個分支的。
- 版本庫:存放所有已經提交到本地倉庫的代碼版本
- 版本結構:樹結構,樹中每個節點代表一個代碼版本。
三、git基本命令
?設置全局用戶名,信息記錄在~/.gitconfig文件中
git config --global user.name xxx
?設置全局郵箱地址,信息記錄在~/.gitconfig文件中
git config --global user.email xxx@xxx.com
?將當前目錄配置成git倉庫,信息記錄在隱藏的.git文件夾中
git init
?查看倉庫狀態
git status
當我們在當前目錄下創建一個新文件,查看倉庫狀態會提示我們新創建的文件沒有添加到倉庫的暫存區中!!
?將XX文件添加到暫存區
git add XX
將所有待加入暫存區的文件加入暫存區
git add .
?將暫存區的內容提交到當前分支
git commit -m "給自己看的備注信息"
?當文件被修改后
再將它添加到暫存區中?
?查看XX文件相對于暫存區修改了哪些內容
git diff XX
(注:如果修改后的文件已被添加到暫存區就查看不出來修改的區別!!)
將文件從倉庫索引目錄中刪掉:
git rm --cached XX
查看當前分支的所有版本
git log
?
一行展示 :
git log --pretty=oneline
將代碼庫回滾到上一個版本:
git reset --hard HEAD^ 或 git reset --hard HEAD~
- ?往上回滾兩次,以此類推:
git reset --hard HEAD^^
- 往上回滾100個版本:
git reset --hard HEAD~100
- ?回滾到某一特定版本
git reset --hard 版本號
查看HEAD指針的移動歷史(包括被回滾的版本)
git reflog
?將XX文件尚未加入暫存區的修改全部撤銷
git checkout — XX或git restore XX
?
?
?
作用是將暫存區的文件從暫存區撤出,但不會更改文件
git restore --staged xxx
?當我們新創建一個文件:
添加到暫存區
?
修改另一個read.txt文件后,存入暫存區,并提交。
?我們也可以修改兩個文件,只添加一個文件并提交。
?我們新創建兩個文件a.txt和b.txt,然后都將它們添加到暫存區中。
并 提交到版本庫。
當我們把a.txt和b.txt兩個文件刪除后
?我們也可以把刪除a.txt和b.txt這個操作也添加進暫存區,并提交到版本庫進行持久化
?此時,我們可以通過git restore --staged xxx將從工作區存入暫存區的操作撤銷,然后再通過git restore xxx將xxx在工作區進行的操作進行撤銷。
此時,我們刪除的a.txt文件就又被我們找回來了。
總結
Git是一個版本管理控制系統(縮寫VCS),它可以在任何時間點,將文檔的狀態作為更新記錄保存起來,也可以在任何時間點,將更新記錄恢復回來。