git基本概念 基本命令 與SVN對比

2021-08-16 23:22:00 字數 3928 閱讀 9043

基本概念:

(1)工作區:電腦可以看到的目錄。

(2)暫存區:stage(

index),

一般存放在 ".git目錄下" 下的index檔案(.git/index)中,所以我們把暫存區有時也叫作索引(index)。

(3)版本庫:工作區有乙個隱藏目錄.git,這個不算工作區,而是

git的版本庫。

index:暫存區(.git/index)             head:指向master分支的乙個」游標」

objects: git的物件庫(.git/object  含建立的各種物件及內容)

master:master分支所代表的目錄樹。

git:儲存不同時刻的檔案快照。

git分支:本質僅僅是指向提交物件的可變指標。

(1)git add命令:暫存區的目錄樹被更新,工作區修改(增加)的檔案內容被寫入到物件庫中新物件中,物件id被記錄在暫存區檔案索引中。

(2)git commit 命令:暫存區目錄樹寫到物件庫master分支更新。(指向的目錄書就是

提交時暫存區的目錄樹

)。(3)git reset head命令:暫存區目錄樹被master分支指向的目錄樹所替換。

(4)git rm --cached  命令:直接從暫存區刪除指定檔案,工作區不改變。

(5)git checkout  . 或git checkout -- 命令:用暫存區全部或指定檔案替換工作區檔案。(危險:清除工作區未新增到暫存區的改動

)git checkout 也可切換工作空間。

(6)git checkout head . 或 git check out head 命令:會用head指向的master分支中全部或部分檔案替換暫存區和工作區中的檔案。(危險:會清除工作區及暫存區未提交的改動)。

(7) git init 初始化版本庫,當前

資料夾下初始化

乙個倉庫,此時檔案裡會到乙個.git的隱藏資料夾(將當前目錄變為倉庫)

(8)git pull

:將遠端庫資料更新至本地

(9)git push origin master:將本地庫提交至遠端庫。

基本命令

(1)配置:

配置使用者名稱:git config --global user.name "你的名字"

配置e-mail:git config --global user.email "你的郵箱@xx.com"

(2)與新增有關的:

將當前目錄變為倉庫:git init

將檔案新增到暫存區:git add 檔名 [可選:另乙個檔名]

將暫存區提交到倉庫:git commit –m "描述"

(3)與查詢有關的:

查詢倉庫狀態:git status

比較檔案差異(請在git add之前使用):git diff 檔名

檢視倉庫歷史記錄(詳細):git log

檢視倉庫歷史記錄(單行):git log --pretty=online 或 git log --online

檢視所有版本的commit id:git reflog

(4)與撤銷有關的:

撤銷工作區的修改:git checkout -- 檔名

撤銷暫存區的修改:git reset head 檔名

回退到歷史版本:git reset --hard 該版本id

回退到上個版本:git reset --hard head^

(5)與標籤有關的

為當前版本打標籤:git tag 標籤名

為歷史版本打標籤:git tag 標籤名 該版本id

指定標籤說明:git tag –a 標籤名 –m "標籤說明" [可選:版本id]

檢視所有標籤:git tag

檢視某一標籤:git show 標籤名

刪除某一標籤:git tag –d 標籤名

(6)github

有關的:

先有本地庫,後有遠端庫,將本地庫push到遠端庫

關聯本地倉庫和github庫:git remote add origin **上的倉庫位址

第一次將本地倉庫推送到github上:git push –u origin master

先有遠端庫,後有本地庫,從遠端庫clone到本地庫

**位址可以選擇https協議(

)、ssh協議(

[email protected]...

)。如果選擇ssh協議,必須將ubuntu的公鑰新增到github上。見下一步

ssh key

生成ssh key:ssh-keygen –t rsa –c "你的郵箱@xx.com"

生成key時彈出選項,回車選擇預設即可。

key儲存位置:/root/.ssh

登陸github,建立new ssh key,其內容為/root/.ssh/id_rsa.pub中文字

已經有了本地庫和遠端庫,二者實現同步

git與svn區別?

(1)git為分布式,且內容按元資料方式儲存

,且沒有全域性版本號,且內容完整性優

.(使用雜湊演算法磁碟故障時,可降低對版本庫破壞)。

(2)svn為非分布式,內容按檔案儲存,有明確的版本號。

參考**:

(1)

(2)

基礎命令:

git --version  檢視

git的版本資訊

git config --global user.name  獲取當前使用者的登入名。

git config --global user.email  //獲取當前登入使用者的郵箱

登入git(設定git使用者資訊)

git config --global user.name 『設定英文使用者名稱』

git config --global user.email 『設定的email』

初始化git倉庫

git  init當前

資料夾下初始化

乙個倉庫,此時檔案裡會到乙個.git的隱藏資料夾(將當前目錄變為倉庫)

git commit -m 『備註資訊』 增加到版本庫

git log         檢視倉庫歷史記錄(詳細 )

git status      檢視倉庫狀態

git rm in.txt --cached  刪除暫存區指定檔案

git reflog      檢視版本的提交id

git reset       取消暫存

git pull        從遠端庫獲取,並合併到本地分支

關聯本地倉庫和github庫:git remote add origin **上的倉庫位址。

第一次將本地倉庫推送到github上:git push –u origin master。

從遠端庫轉殖到本地:git clone **上的倉庫位址。

比較的是暫存區和工作區的差異

git diff

比較的是暫存區和歷史區的差異

git diff --cached

比較的是歷史區和工作區的差異(修改)

git diff master

合併分支:

svn基本命令

驗證svn安裝是否成功 svnadmin version 建立svn的資料倉儲 svnadmin create data svn svndata spms 啟動svn服務 svnserve d r data svn svndata spms 單倉庫啟動 svnserve d r data svn s...

svn基本命令

1 將檔案checkout到本地目錄 svn checkout path path是伺服器上的目錄 例如 svn checkout svn 簡寫 svn co 2 往版本庫中新增新的檔案 svn add file 例如 svn add test.php 新增test.php svn add php ...

GIT基本概念

工作區是個工作目錄,實質上就是我們的在開發過程中對其進行新增 編輯的源 包括標頭檔案 原始檔和配置檔案 在工作區中有乙個隱藏檔案 git 它不屬於工作區,而是git版本庫。該檔案下包括很多其他檔案,其中重要的是暫存區 git index 物件庫 git objects 分支 master分支和其他分...