Git是什么
git是目前最先進的分布式版本控制系統,它的核心架構如下圖所示,分為四個核心區域,git的常用命令主要是關于這四個區域,

-
本地作業區-work
本地作業區就是我們實際電腦中的檔案夾以及檔案, -
快取區-index
英文叫stage, 或index,一般存放在 ".git目錄下" 下的index檔案(.git/index)中,所 以我們把暫存區有時也叫作索引(index) -
本地倉庫-resp
作業區有一個隱藏目錄.git,這個不算作業區,而是Git的版本庫 -
遠程倉庫-remote
相對于本地倉庫只能你一個人訪問,在需要多人協作的時候功能可以再公有網路上建立一個倉庫,提供大家一起訪問
常用基本命令
- 初始化一個git倉庫,默認為當前目錄也可以指定目錄
git init
git init repo-name
- 基于遠處倉庫初始化本地倉庫,基于遠程鏈接初始化本地倉庫,也可以指定本地倉庫的地址
git clone url
git clone url directory
- 查看在你上次提交之后是否有修改,使用該命令的時候加了 -s 引數,以獲得簡短的結果輸出,
git status
git status -s
- 查看執行 git status 的結果的詳細資訊
git diff 查看尚未快取的修改
git diff -cached 查看已經快取的改動
git diff HEAD 查看已經快取和未快取的改動
git diff --stat 顯示摘要而非整個diff
- 洗掉檔案,洗掉之后務必要提交
git rm file 洗掉作業區和暫存區
git rm -f file 修改未提交時需要強制洗掉
git rm --cached file 只洗掉快取區不洗掉作業區
git rm -r * 遞回洗掉
本地作業區和其他區域互動常用命令
- 與快取區互動
git add file 將作業區指定新增內容或者修改內容提交到快取區,
git add . 包括所有內容,名字可以使用匹配運算式(*.sh)
git checkout file 將快取區的file覆寫作業區
- 與本地倉庫互動
git checkout HEAD file 從本地倉庫中檢出檔案,會覆寫快取區和作業區
git commit -am file 直接將作業區檔案提交本地倉庫省略了git add這一步
- 與遠程倉庫及互動
git pull origin next:master 取回遠程主機origin的next分支的更新,再與本地的master分支合并,同時更新了作業區、快取區、本地倉庫
git pull 如果當前分支只有一個追蹤分支,連遠程主機名都可以省
快取區和其他區域互動常用命令
- 與本地倉庫互動
git commit -m file 指定檔案暫存區里的改動給提交到本地的版本庫
git reset file 本地倉庫和快取區回退到上一個版本,本地作業區內容不變
git reset -soft file 本地倉庫回退版本,可直接commit
git reset -hard file 徹底回退版本,作業區內容被覆寫
本地倉庫和其他區域互動常用命令
- 與遠程倉庫互動
git remote 管理遠程倉庫的作業,包括添加遠程庫,移除廢棄的遠程庫,管理各式遠程庫分支,定義是否跟蹤這些分支
git push 將本地倉庫的更新推送至遠程倉庫
git fetch 獲取遠程倉庫的更新到本地倉庫
git 檔案的狀態標識
-
A: 你本地暫存區新增的檔案(本地倉庫中沒有).
-
C: 檔案的一個新拷貝.
-
D: 你本地洗掉的檔案(服務器上還在).
-
M: 作業區檔案的內容或者mode被修改了.
-
R: 檔案名被修改了,
-
T: 檔案的型別被修改了,
-
U: 檔案沒有被合并(你需要完成合并才能進行提交),
-
X: 未知狀態(很可能是遇到git的bug了,你可以向git提交bug report),
Git 和SVN
在直觀的使用層面我們可以發現git是分布式的,svn是集中式的,我們在使用git的時候無需搭建服務器即可以進行版本控制,只有在需要多人共享的時候,才需要服務器端,而SVN必須是有一個服務器端,
git 和 svn 對檔案版本控制的方式也不同,這一點對使用者來說是透明的
如果你有svn的使用經驗,在windows環境下,推薦使用TortoiseGit,git圖形客戶端,上手較為方便,但是也需要了解git的結構以及基本命令,
以上內容只是對git做了一個簡單的介紹,在后續的使用程序中有機會了會對各個命令做詳細的介紹,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/216887.html
標籤:其他
