日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

工作区、暂存区、版本库、远程仓库

發布時間:2023/12/10 编程问答 60 豆豆
生活随笔 收集整理的這篇文章主要介紹了 工作区、暂存区、版本库、远程仓库 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、概念

? ?1、四個工作區域

Git本地有四個工作區域:工作目錄(Working Directory)、暫存區(Stage/Index)、資源庫(Repository或Git Directory)、git倉庫(Remote Directory)。文件在這四個區域之間的轉換關系如下:

? ??Workspace: 工作區,就是你平時存放項目代碼的地方

Index / Stage: 暫存區,用于臨時存放你的改動,事實上它只是一個文件,保存即將提交到文件列表信息

? ??Repository: 倉庫區(或版本庫),就是安全存放數據的位置,這里面有你提交到所有版本的數據。其中HEAD指向最新放入倉庫的版本

? ? ? ??Remote: 遠程倉庫,托管代碼的服務器,可以簡單的認為是你項目組中的一臺電腦用于遠程數據交換

? ?2、工作流程

git的工作流程一般是這樣的:

1、在工作目錄中添加、修改文件;

2、將需要進行版本管理的文件放入暫存區域;

3、將暫存區域的文件提交到git倉庫。

因此,git管理的文件有三種狀態:已修改(modified),已暫存(staged),已提交(committed)

? ?3、文件的四種狀態

版本控制就是對文件的版本控制,要對文件進行修改、提交等操作,首先要知道文件當前在什么狀態,不然可能會提交了現在還不想提交的文件,或者要提交的文件沒提交上。

GIT不關心文件兩個版本之間的具體差別,而是關心文件的整體是否有改變,若文件被改變,在添加提交時就生成文件新版本的快照,而判斷文件整體是否改變的方法就是用

SHA-1算法計算文件的校驗和。

Untracked:? ?未跟蹤, 此文件在文件夾中, 但并沒有加入到git庫, 不參與版本控制. 通過git add 狀態變為Staged.

? ???Staged:? ??暫存狀態. 執行git commit則將修改同步到庫中, 這時庫中的文件和本地文件變為一致, 文件為Unmodify狀態. 執行git reset HEAD filename取消暫存,文件狀態為Modified

?Unmodify:? ?文件已經入(commit)庫, 未修改, 即版本庫中的文件快照內容與文件夾中完全一致. 這種類型的文件有兩種去處, 如果它被修改, 而變為Modified.?如果使用git rm移出版本庫, 則成為Untracked文件

??Modified:? ??文件已修改, 僅僅是修改, 并沒有進行其他的操作. 這個文件也有兩個去處, 通過git add可進入暫存staged狀態, 使用git checkout 則丟棄修改過,返回到unmodify狀態, 這個git checkout即從庫中取出文件, 覆蓋當前修改?下面的圖很好的解釋了這四種狀態的轉變:

新建文件--->Untracked

使用add命令將新建的文件加入到暫存區--->Staged

使用commit命令將暫存區的文件提交到本地倉庫--->Unmodified

如果對Unmodified狀態的文件進行修改---> modified

如果對Unmodified狀態的文件進行remove操作--->Untracked

?

二、四個區域常用命令

? ?1、新建代碼庫

?

# 在當前目錄新建一個Git代碼庫git init # 新建一個目錄,將其初始化為Git代碼庫 git init [project-name] # 下載一個項目和它的整個代碼歷史 git clone [url]

?

? ?2、查看文件狀態

#查看指定文件狀態 git status [filename] #查看所有文件狀態 git status

? ? 3、工作區<-->暫存區

?

# 添加指定文件到暫存區 git add [file1] [file2] ... # 添加指定目錄到暫存區,包括子目錄 git add [dir] # 添加當前目錄的所有文件到暫存區 git add . #當我們需要刪除暫存區或分支上的文件, 同時工作區也不需要這個文件了, 可以使用(??) git rm file_path #當我們需要刪除暫存區或分支上的文件, 但本地又需要使用, 這個時候直接push那邊這個文件就沒有,如果push之前重新add那么還是會有。 git rm --cached file_path #直接加文件名 從暫存區將文件恢復到工作區,如果工作區已經有該文件,則會選擇覆蓋 #加了【分支名】 +文件名 則表示從分支名為所寫的分支名中拉取文件 并覆蓋工作區里的文件 git checkout

?

? ? 4、工作區<-->資源庫(版本庫)

?

#將暫存區-->資源庫(版本庫) git commit -m '該次提交說明' #如果出現:將不必要的文件commit 或者 上次提交覺得是錯的 或者 不想改變暫存區內容,只是想調整提交的信息 #移除不必要的添加到暫存區的文件 git reset HEAD 文件名 #去掉上一次的提交(會直接變成add之前狀態) git reset HEAD^ #去掉上一次的提交(變成add之后,commit之前狀態) git reset --soft HEAD^

?

? ? 5、遠程操作

# 取回遠程倉庫的變化,并與本地分支合并 git pull # 上傳本地指定分支到遠程倉庫 git push

? ?6、其它常用命令

?

# 顯示當前的Git配置 git config --list # 編輯Git配置文件 git config -e [--global] #初次commit之前,需要配置用戶郵箱及用戶名,使用以下命令: git config --global user.email "you@example.com" git config --global user.name "Your Name" #調出Git的幫助文檔 git --help #查看某個具體命令的幫助文檔 git +命令 --help #查看git的版本 git --version

?

?

參考

一個小時學會Git

總結

以上是生活随笔為你收集整理的工作区、暂存区、版本库、远程仓库的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。