程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

python面試題——版本管理工具GIT(一)

編輯:Python

一、Git概念

1、Git的概念

Git是一個免費的、開源的分布式版本控制系統,可以快速高效地處理從小型到大型的項目。

2、什麼是版本控制?

版本控制是一種記錄一個或若干文件內容變化,以便將來查閱特定版本修訂情況的系統。

3、Git官網:

https://git-scm.com/

4、為什麼要使用版本控制?

有了它你就可以將某個文件回溯到之前的狀態,甚至將整個項目都回退到過去某個時間點的狀態。
就算你亂來一氣把整個項目中的文件改的改刪的刪,你也照樣可以輕松恢復到原先的樣子。

5、版本控制系統的分類:

集中化的版本控制系統:

事分兩面,有好有壞。這麼做最顯而易見的缺點是中央服務器的單點故障。如果服務器宕機一小時,那麼在這一小時內,誰都無法提交更新,也就無法協同工作。如果數據丟失,不能回滾代碼。

分布式的版本控制系統


分布式的版本控制系統在管理項目時存放的不是項目版本與版本之間的差異.它存的是索引(所需磁盤空間很少所以每個客戶端都可以放下整個項目的歷史記錄)

二、Git結構

工作區:項目或者目錄(代碼的開發)

本地區:自己的磁盤空間存儲,不能和其他人進行交互

在工作區執行git init命令,就初始化了一個本地庫

本地庫文件,配置

遠程庫:服務器存儲

三、代碼托管中心_本地庫和遠程庫的交互方式

1、代碼托管中心是干嘛的呢?

我們已經有了本地庫,本地庫可以幫我們進行版本控制,為什麼還需要代碼托管中心呢?

它的任務是幫我們維護遠程庫,

2、托管中心種類:

局域網環境下: 可以搭建 GitLab服務器作為代碼托管中心,GitLab可以自己去搭建

外網環境下:可以由GitHub或者Gitee作為代碼托管中心,GitHub或者Gitee是現成的托管中心,不用自己去搭建

四、初始化本地倉庫

git init


注意事項:.git目錄下的本地庫相關的子目錄和子文件不要刪除,不要胡亂修改。

創建用戶名和郵箱

五、Git常用命令

提交到暫存區:git add file

將暫存區的內容提交到本地庫:git commit -m ‘備注’

(1)不放在本地倉庫中的文件,git是不進行管理
(2)即使放在本地倉庫的文件,git也不管理,必須通過add,commit命令操作才可以將內容提交到本地庫。

status命令

git status看的是工作區和暫存區的狀態

a、創建一個文件,然後查看狀態:

b、然後將test1.py通過git add命令提交至:暫存區:

c、再將test1.py通過git commit命令提交至:工作區:

d、git status查看狀態,工作區沒有可以提交的文件了

log命令

git log 可以讓我們查看提交的,顯示從最近到最遠的日志

eg:a、此時對test.py文件進行修改

注意:修改完成後,是對工作區的文件進行了修改,並沒有提到本地倉庫

b、再次提交

c、查看日志

d、查看提交日志(查看更簡潔)

e、git reflog:查看日志更詳細

reset命令

reset命令:前進或者後退歷史版本

復制:在終端中選中就是復制了

粘貼:右鍵:paste

a、將工作區的test1.py文件刪除

b、本地庫還存在

c、如果本地庫也要刪除,需要再次執行add、commit命令同步到本地庫

d、查看狀態:沒有可以提交的了

e、此時後悔了,想把刪除的文件復原

diff命令

對test.py文件內容進行刪除操作,此時工作區和本地倉庫中的文件內容不一致

默認和最新提交的版本進行比較


也可以用git diff head 版本號

如果想和舊的版本進行比較

總結:git diff —>比較工作區中和暫存區中 所有文件的差異

六、分支

1、什麼是分支

a、什麼是分支:

在版本控制過程中,使用多條線同時推進多個任務。這裡面說的多條線,就是多個分支。

通過一張圖展示分支:

b、分支的好處:

同時多個分支可以並行開發,互相不耽誤,互相不影響,提高開發效率

如果有一個分支功能開發失敗,直接刪除這個分支就可以了,不會對其他分支產生任何影響。

2、操作分支

查看:git branch -v

創建:git branch dev

創建:git branch dev


注意:創建的分支和主分支的代碼、日志完全一致

切換分支:git checkout dev1

a、創建1個文件demo1.py文件

b、此時dev1分支肯定有demo1.py文件,主分支master沒有demo1.py文件

3、沖突問題,如何解決沖突題(重要)

a、在主分支master中將文件test.py新增內容

b、提交到本地庫

c、在dev分支上的test.py文件中新增內容

d、提交到本地庫

注意:

將dev分支合並到主分支master上,需要先切換到主分支上
也就是說也master為主,將對方的分支合並到master分支上

e、執行git merge dev1 合並分支沖突了

此時處於合並狀態,需要修復沖突,其他事情做不了

f、舉例:當我創建demo2.py文件,編輯內容提交到本地庫時,不允許操作

解決沖突問題:

沖突內容

解決完成,按照項目需求來

注意:解決沖突的提交和普通提交不一樣,commit命令不能加test.py




  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved