1. 程式人生 > >git的相關知識

git的相關知識

工作區和暫存區

工作區

例如我們建立一個本地倉庫 名字gitProject 如圖,這個gitProject就是一個工作區

版本庫

上圖我們看到工作區裡面還有一個目錄.git,而它並不算是工作區,而是git的版本庫。

git的版本庫裡存了很多東西,其中最重要的就是稱為stage(或者叫index)的暫存區,還有git為我們自動建立的第一個分支master,以及指向master的一個指標叫HEAD

我們知道把修改的內容提交到git 分兩步執行的  git add  和git commit

git add把檔案新增進去,就是把檔案修改新增到暫存區;

git commit

提交更改,就是把暫存區的所有內容提交到當前分支。

在我們建立git版本庫時,git自動為我們建立了唯一一個master分支,git commit就是往master分支上提交更改。

 

現在我們操作一下 

下面我們在ViewController.m 中加入一個NSLog(@"!!!!!!!!!!!!!");

檢視下狀態  git status

 

git add . 下  然後檢視下狀態 

git add . 就是將你想要提交的內容放到暫存區中

然後git commit 下  然後檢視下狀態 

清空了暫存區 提交到了分支上面

我們對git的管理實際上就是修改,不管你做什麼樣的操作就是一個修改 。

 

下面我們看下 git checkout -- gitProject/gitProject/ViewController.m 

cat gitProject/gitProject/ViewController.m
檢視ViewController.m 內容 如圖

 
然後我們新增一行  NSLog(@"?????????");

cat gitProject/gitProject/ViewController.m 檢視檔案內容如圖
git checkout --  
gitProject/gitProject/ViewController.m 就是把檔案在工作區的修改全部撤銷,讓這個檔案回到最近一次git commitgit add時的狀態。
然後我們看看git checkout -- 之後的檔案內容 


檔案內容果然復原了。

git checkout -- file 是撤銷,如果沒有--,就變成了切換到另一個分支的命令了

然後 我們看下 git reset HEAD <file>  這個命令可以把你add 到暫存區的修改撤銷掉 

git add . 之後  執行 git reset HEAD /gitProject/gitProject/ViewController.m  

然後git commit 後會提示沒有可提交的內容

下面講講刪除檔案

例如 現在建立一個ssss.h 和ssss.c 檔案  然後提交到倉庫

1 我們可以直接去倉庫目錄下吧你想刪除的檔案給刪除了  然後 提交下 

2 或者用命令列 git rm 檔名  然後提交

但是如果你發現刪錯了,只要咱們版本庫裡面還有,我們就可以把誤刪的檔案恢復到最新版本:使用

git checkout -- gitProject/gitProject/ViewController.m

參考
 https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/0013758392816224cafd33c44b4451887cc941e6716805c000