git基礎操作(詳細版)

2021-10-12 12:47:38 字數 2711 閱讀 6937

給某個資料夾初始化git

git init
給該資料夾下建立乙個版本,需要該資料夾下的檔案有所變化,因此建立乙個檔案在該資料夾下面,然後操作以下兩步

git add code.txt

git commit -m '關於該版本的注釋、說明'

git log
版本之間並不是記錄了全部的檔案內容資訊,而是只記錄目前版本相較上乙個版本變化了那些。比如新增了一行**,或者刪除了一行注釋。

如果版本多長顯示不下,可以使用簡介模式

git log --pretty=oneline
head表示當前最近的乙個版本,上乙個版本是head ^或者head~1。如果是上100個版本 則是head~100如果需要將當前版本回退到上乙個版本,或者上兩個版

git reset --hard head^

# 或者

git reset --hard head~2

如果想要從當前的版本去向曾經提交過的任何乙個版本。

git reset --hard 版本號
上例可以看出,在遷移版本的時候,git並沒有刪除任何乙個版本,只是指標指向了不同的位置而已。

git reflog
工作區指的是,git當前工作的根目錄位置,即是工作區。即.git檔案所在的位置

版本庫指的是git建立的.git資料夾,即是版本庫

暫存區指的是版本庫中的乙個非常重要區域,用於暫存提交的檔案修改,使用下面命令git add可以新增修改到暫存區

git commit則是把暫存區中的所有修改,一次性的提交成乙個版本記錄。

在提交版本之前可以多次將修改提交到暫存區,最後一次性的提交成版本

git status
當加入到暫存區的檔案被再次修改後,如果想要提交保留修改則使用git add再次加入到暫存區,如果不想要修改了,則可以使用下面命令撤銷修改。也就是相當於使用暫存區來覆蓋工作區的修改。

git checkout -- 檔名
如果上面修改的檔案使用git add已經新增到了暫存區,但是此時仍然不想要此次提交了,則需要使用下面命令取消暫存

git reset head 檔名
再使用git checkout則可以將此次修改從工作區徹底刪除掉

總結:想要撤銷修改的幾種case

修改了工作區的檔案,沒有提交暫存區,想直接丟棄git checkout修改了檔案,也提交了暫存區,還是想丟棄git reset headgit checkout

修改類檔案,提交了暫存區,也提交了版本庫,則可以使用git reset --hard 版本號直接回到指定的版本。

對比修改了的工作區內容和最近版本head內容有什麼不同,使用:

git

diff head -- 檔名

對比兩個版本之間,某個檔案的不同

# 對比head版本和head的上乙個版本之間,某個檔案(非根目錄帶位址)的不同

gitdiff head head^ -- 檔名

注:

如圖所示,結果中的--- +++是按照diff後面的版本順序來看

---代表當前最新的head

+++代表head^,即head的上乙個版本

檔案內容中沒有- +符號的,表示兩個檔案相同的地方,帶有- +符號的表示兩個檔案不同的地方,其中帶有-表示,該不同存在於head 帶有+表示該不同存在於head^(即head上乙個版本)

刪除檔案,也是工作區檔案的改修,操作方法和檔案的修改是一樣的

如果刪除了工作區的檔案,想要撤銷刪除。和工作區的檔案被修改了,要撤銷一樣使用git checkout -- 檔名

工作區的檔案被刪除,想將刪除的操作新增到暫存區,以下語句均可

git

rm 檔名

git add 檔名

提交刪除到版本

git commit -m '注釋'

git詳細操作

分布式 git版本控制系統是乙個分布式的系統 是用來儲存工程源 歷史狀態的命令列工具 儲存點 git的儲存點可以追蹤原始碼中的檔案 並能得到某乙個時間點上的整個工程專案額狀態 可以在該儲存點將多人提交的原始碼合併,也可以會退到某乙個儲存點上 git離線操作性 git可以離線進行 提交 git基於快照...

GIT 基礎詳細理解

想要了解git要先知道 它是什麼,怎麼用的,用它來做什麼 首先git 官方的來說是一種版本管理控制系統 縮寫vcs 那何謂 版本管理控制系統 版本管理是一種記錄檔案變化的方式,以便將來查閱特定版本的檔案內容 簡單來說就是 當我們對文件進行修改,刪除,的一些操作時,版本管理會進行監聽記錄我們修改的資料...

git基礎使用 超級詳細

一.使用git前的步驟 1.安裝git 安裝步驟省略 2.使用git設定使用者名稱和郵箱 git config global user.name your name git config global user.email email example.com 二.使用git進行專案開發的步驟 1.轉...