自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

面試官:說(shuō)說(shuō)你對(duì)Git的理解?

開(kāi)源
分布式版本控制系統(tǒng)的客戶(hù)端并不只提取最新版本的文件快照,而是把代碼倉(cāng)庫(kù)完整地鏡像下來(lái)。這么一來(lái),任何一處協(xié)同工作用的服務(wù)器發(fā)生故障,事后都可以用任何一個(gè)鏡像出來(lái)的本地倉(cāng)庫(kù)恢復(fù)。

[[416119]]

本文轉(zhuǎn)載自微信公眾號(hào)「JS每日一題」,作者灰灰 。轉(zhuǎn)載本文請(qǐng)聯(lián)系JS每日一題公眾號(hào)。

一、是什么

git,是一個(gè)分布式版本控制軟件,最初目的是為更好地管理Linux內(nèi)核開(kāi)發(fā)而設(shè)計(jì)

分布式版本控制系統(tǒng)的客戶(hù)端并不只提取最新版本的文件快照,而是把代碼倉(cāng)庫(kù)完整地鏡像下來(lái)。這么一來(lái),任何一處協(xié)同工作用的服務(wù)器發(fā)生故障,事后都可以用任何一個(gè)鏡像出來(lái)的本地倉(cāng)庫(kù)恢復(fù)

項(xiàng)目開(kāi)始,只有一個(gè)原始版?zhèn)}庫(kù),別的機(jī)器可以clone這個(gè)原始版本庫(kù),那么所有clone的機(jī)器,它們的版本庫(kù)其實(shí)都是一樣的,并沒(méi)有主次之分

所以在實(shí)現(xiàn)團(tuán)隊(duì)協(xié)作的時(shí)候,只要有一臺(tái)電腦充當(dāng)服務(wù)器的角色,其他每個(gè)人都從這個(gè)“服務(wù)器”倉(cāng)庫(kù)clone一份到自己的電腦上,并且各自把各自的提交推送到服務(wù)器倉(cāng)庫(kù)里,也從服務(wù)器倉(cāng)庫(kù)中拉取別人的提交

github實(shí)際就可以充當(dāng)這個(gè)服務(wù)器角色,其是一個(gè)開(kāi)源協(xié)作社區(qū),提供Git倉(cāng)庫(kù)托管服務(wù),既可以讓別人參與你的開(kāi)源項(xiàng)目,也可以參與別人的開(kāi)源項(xiàng)目

二、工作原理

當(dāng)我們通過(guò)git init創(chuàng)建或者git clone一個(gè)項(xiàng)目的時(shí)候,項(xiàng)目目錄會(huì)隱藏一個(gè).git子目錄,其作用是用來(lái)跟蹤管理版本庫(kù)的

Git 中所有數(shù)據(jù)在存儲(chǔ)前都計(jì)算校驗(yàn)和,然后以校驗(yàn)和來(lái)引用,所以在我們修改或者刪除文件的時(shí)候,git能夠知道

Git用以計(jì)算校驗(yàn)和的機(jī)制叫做 SHA-1 散列(hash,哈希), 這是一個(gè)由 40 個(gè)十六進(jìn)制字符(0-9 和 a-f)組成字符串,基于 Git 中文件的內(nèi)容或目錄結(jié)構(gòu)計(jì)算出來(lái),如下:

  1. 24b9da6552252987aa493b52f8696cd6d3b00373 

當(dāng)我們修改文件的時(shí)候,git就會(huì)修改文件的狀態(tài),可以通過(guò)git status進(jìn)行查詢(xún),狀態(tài)情況如下:

  • 已修改(modified):表示修改了文件,但還沒(méi)保存到數(shù)據(jù)庫(kù)中。
  • 已暫存(staged):表示對(duì)一個(gè)已修改文件的當(dāng)前版本做了標(biāo)記,使之包含在下次提交的快照中。
  • 已提交(committed):表示數(shù)據(jù)已經(jīng)安全的保存在本地?cái)?shù)據(jù)庫(kù)中。

文件狀態(tài)對(duì)應(yīng)的,不同狀態(tài)的文件在Git中處于不同的工作區(qū)域,主要分成了四部分:

  • 工作區(qū):相當(dāng)于本地寫(xiě)代碼的區(qū)域,如 git clone 一個(gè)項(xiàng)目到本地,相當(dāng)于本地克隆了遠(yuǎn)程倉(cāng)庫(kù)項(xiàng)目的一個(gè)副本
  • 暫存區(qū):暫存區(qū)是一個(gè)文件,保存了下次將提交的文件列表信息,一般在 Git 倉(cāng)庫(kù)目錄中
  • 本地倉(cāng)庫(kù):提交更新,找到暫存區(qū)域的文件,將快照永久性存儲(chǔ)到 Git 本地倉(cāng)庫(kù)
  • 遠(yuǎn)程倉(cāng)庫(kù):遠(yuǎn)程的倉(cāng)庫(kù),如 github

三、命令

從上圖可以看到,git日常簡(jiǎn)單的使用就只有上圖6個(gè)命令:

  • add
  • commit
  • push
  • pull
  • clone
  • checkout

但實(shí)際上還有很多命令,如果想要熟練使用,還有60個(gè)多命令,通過(guò)這些命令的配合使用,能夠提高個(gè)人工作效率和團(tuán)隊(duì)協(xié)助能力

參考文獻(xiàn)

https://zh.wikipedia.org/wiki/Git

 

https://www.ruanyifeng.com/blog/2015/12/git-cheat-sheet.html

 

責(zé)任編輯:武曉燕 來(lái)源: JS每日一題
相關(guān)推薦

2021-11-25 10:18:42

RESTfulJava互聯(lián)網(wǎng)

2021-08-17 07:15:16

Git RebaseGit Merge面試

2021-08-19 08:36:22

Git ResetGit Revert版本

2021-08-16 08:33:26

git

2020-12-01 08:47:36

Java異常開(kāi)發(fā)

2020-06-12 15:50:56

options前端服務(wù)器

2021-09-16 07:52:18

算法應(yīng)用場(chǎng)景

2019-05-10 10:50:04

Spring AOPJDK動(dòng)態(tài)代理CGLIB動(dòng)態(tài)代理

2021-11-09 08:51:13

模式命令面試

2020-12-04 06:27:04

序列化面試官Java

2021-11-05 07:47:56

代理模式對(duì)象

2021-11-03 14:10:28

工廠(chǎng)模式場(chǎng)景

2021-11-02 22:04:58

模式

2021-11-10 07:47:49

組合模式場(chǎng)景

2022-02-21 17:24:18

序列化對(duì)象存儲(chǔ)

2021-09-26 10:57:16

集合操作場(chǎng)景

2021-09-27 06:50:04

樹(shù)非線(xiàn)性數(shù)據(jù)

2021-09-06 10:51:27

TypeScript類(lèi)JavaScript

2021-11-11 16:37:05

模板模式方法

2021-09-28 07:12:09

測(cè)試路徑
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)