1. 程式人生 > 實用技巧 >基於python搭建FTP服務

基於python搭建FTP服務

目前世界上最先進的分散式版本控制系統

1、版本控制

  • 概念

    • 用於管理多人協同開發的技術

    • 版本控制是在我們開發的過程中用於管理我們的檔案、目錄或工程等內容的修改歷史,方便檢視歷史更改記錄,備份以便恢復以前的版本的軟體工程技術。

  • 優點

    • 實現跨區域多人協同開發

    • 追蹤和記載一個或者多個檔案的歷史記錄

    • 組織和保護原始碼和文件

    • 統計工作量

    • 並行開發,提高開發效率

    • 跟蹤記錄整個軟體的開發過程

    • 減輕開發人員的負擔,節省時間,同時降低人為錯誤

  • 常見的版本控制工具

    • Git

    • SVN(Subversion):版本控制

    • CVS(Concurrent Versions System):併發版本系統

    • VSS(Microsoft Visual Sourcesafe)

    • TFS(Team Foundation Server):團隊基本伺服器

    • Visual Studio Online

  • 版本控制分類

    • 本地版本控制

      • 記錄檔案每次的更新,可以對每個版本做一個快照或是記錄補丁檔案,適合個人用,如RCS

      • 缺點:

        不能實現團隊合作

    • 集中版本控制:SVN

      • 所有的版本控制都儲存在伺服器上,協同開發者從容器上同步更新或上傳自己的修改

      • 缺點:

        • 所有的版本資料都在伺服器上,使用者的本地只有自己以前所同步的版本,如果不聯網的話,使用者看不到歷史版本,也無法更新最新版本或在不同分支合作

        • 所有的資料都儲存在單一伺服器上,有很大的資料丟失的風險

    • 分散式版本控制:Git

      • 所有的版本資訊倉庫全部同步到使用者本地上,這樣就可以在本地檢視所有的歷史版本,可以離線在本地提交,只需在聯網時push到相應的伺服器或其他使用者那裡

      • 只要有一個使用者的資料沒有問題就可以恢復所有的資料

      • 缺點:

        增加了本地儲存空間的佔用

  • Git和SVN區別

    • SVN

      • 集中式版本控制系統

      • 版本庫集中放在中央伺服器

      • 聯網才能工作

      • 協同工作時,首先從中央伺服器上獲得最新的版本,完成工作後,把最新的版本推送到中央伺服器,對方從伺服器上下載新版本,才能看到修改

    • Git

      • 分散式版本控制系統

      • 沒有中央伺服器,每個人的電腦就是版本庫

      • 不需聯網

      • 協同工作時,若修改了檔案,只需把新版本推送給對方,對方就可以看到修改,無需推送到伺服器

2、Git的歷史

  • Linux 和 Git之父:李納斯·託沃茲

  • 李納斯·託沃茲 創造了Linux系統後,在1991 - 2002 年期間,整個Linux核心維護工作都花在了提交補丁和儲存歸檔這些繁瑣的事情上。

  • 2002年,整個專案組開始啟用一個專門的分散式版本控制系統,BitKeeper來管理和維護程式碼

  • 2005年,Linux核心開源社群和BitKeeper的公司合作關係結束後,李納斯·託沃茲用了兩週的時間開發出了自己的版本系統,也就是Git

3、Git的安裝及配置

  • 下載

  • 解除安裝:(以前安裝過可解除安裝)

    • 控制面板,解除安裝

    • 清除環境變數

  • 安裝

    • 無腦 next 即可

    • 注意兩點:

      • 安裝地址,儘量不要安裝到C盤

      • 有個文件編輯器,可選擇自己電腦上安裝的編輯器,也可以預設不做修改

    • 安裝成功後

      • 在開始選單中會有Git項

      • 在任意資料夾下點選滑鼠右鍵,也可以看到Git的程式

    • Git Bash:Unix與Linux風格的命令列,使用最多

    • Git CMD:Windows風格的命令列

    • Git GUI:圖形介面的git

  • 環境配置

    • 環境變數的配置是為了全域性使用

    • 安裝Git成功後預設系統會自動在環境變數中配置

4、常用的Linux命令

  • cd :改變目錄

  • cd... :回退到上一個目錄

  • pwd :顯示當前所在的目錄路徑

  • ls :列出當前目錄中的所有檔案

  • touch :新建一個檔案

  • rm :刪除一個檔案

  • mkdir :新建一個資料夾

  • rm -r :刪除一個資料夾

  • mv :移動檔案,mv index.html test,把index.html移動到test資料夾下

  • reset :重新初始化終端/清屏

  • clear :清屏

  • history :檢視命令歷史

  • exit :退出

  • #表示註釋

5、Git配置

  • git config -l :檢視git的全部配置

  • git config --system --list :檢視系統的配置

    系統配置的檔案在:安裝Git的目錄下的 Git\etc\gitconfig裡

  • git config --global --list :檢視使用者自己的配置

    使用者自定義的配置的檔案在:C:\Users\使用者名稱下的 .gitconfig 檔案裡

  • 設定自己的使用者名稱和郵箱(必須要做)

    • git config --global user.name "使用者名稱"

    • git config --global user.email 郵箱

6、Git工作區域

  • Git 的工作區域

    • 工作目錄:(Working Directory)

      • 專案在電腦上存放的目錄

    • 暫存區:(Stage/index)

      • 用於臨時存放專案的改動

      • 只是一個檔案,儲存即將提交的檔案列表資訊

    • 資源庫(本地倉庫):(Repository或Git Directory)

      • 安全存放資料的位置,裡面有提交的所有版本的資料

      • HEAD指向最新放入倉庫的版本

    • 遠端的Git 倉庫:(Remote Directory)

      • 託管程式碼的伺服器

  • 工作區域圖如下:

  • Git 的工作流程

    • 1、在工作目錄中新增、修改檔案

    • 2、將需要進行版本管理的檔案新增到暫存區

    • 3、將暫存區域的檔案提交到git倉庫

7、Git專案搭建

  • 本地倉庫搭建

    • 建立全新的倉庫

      在需要用Git 管理的專案的根目錄中執行以下語句:git init

      執行後文件夾中多出了一個 .git 資料夾,關於版本的所有資訊都在這個資料夾裡

  • 克隆遠端倉庫

    • 將遠端倉庫中的映象完全複製一份到本地

    • 在Gitee或者GitHub上覆制這個專案的url

    • 輸入以下命令並執行,即可

      git clone url

8、Git檔案操作

  • 檔案的4種狀態

    • Untracked:未跟蹤

      • 此檔案在資料夾中,但是沒有被git管理

      • 通過 git add files 命令變成 Staged狀態

    • UnModify:檔案已經入庫,未修改

      • 版本庫中的檔案快照內容與資料夾內容完全一致

      • 若此時檔案被修改,狀態變為 Modify

      • 如果使用 git rm 命令移除版本庫,狀態變成Untracked

    • Modify:檔案已修改

      • 通過 git add files 可以變成Staged狀態

      • 通過 git checkout 可丟棄修改,退回到UnModify狀態

    • Staged:暫存狀態

      • 執行 git commit 將修改同步到庫中,此時庫中的檔案和本地的檔案又變為一致,轉變成 UnModify 狀態

      • 執行 git reset HEAD filename 取消暫存,檔案變成Modify狀態

  • 檢視指定檔案狀態:git status filename

  • 檢視所有檔案狀態:git status

  • 把檔案新增到暫存區中:git add .

  • 把檔案提交到本地倉庫中:git commit -m "註釋資訊"

  • 忽略檔案

    • 有時候不想把某些檔案納入到版本控制中,比如資料庫檔案、臨時檔案、設計檔案等等,在主目錄下建立 “.gitignore” 檔案,此檔案的規則如下:

      • 1、檔案中的空行將被忽略

      • 2、以#開頭的內容將被忽略

      • 3、可以使用Linux萬用字元:

        • *代表任意多個字元

        • ? 代表一個字元

        • []代表可選字元的範圍

        • {}代表可選的字串範圍

      • 4、! 後面跟的內容將不會被忽略

      • 5、/ + 檔名,要忽略的檔案在此目錄下,而子目錄中的檔案不會被忽略

      • 6、檔名 + /,要忽略的是此目錄下該名稱的子目錄

        //忽略所有以 .txt結尾的檔案
        *.txt
        //lib.txt不被忽略
        !lib.txt
        //忽略和build在同一級目錄下的其他檔案
        /build
        //忽略build目錄下的所有檔案
        build/

9、碼雲的使用

  • 三種碼雲

    GitHub、Gitee、公司自己搭建的Github

  • Github 和 Gitee的註冊和使用

    • 1、註冊賬號,完善個人資訊

    • 2、設定本機繫結SSH公鑰,實現免密碼登入

      • 不設定免密碼登入的話,每次提交到遠端倉庫都需要密碼

      • 使用命令列生成公鑰

        • Github:ssh-keygen -t rsa -C "郵箱地址",一路回車到生成金鑰

        • Gitee:ssh-keygen -t rsa,一路回車到生成金鑰

        • 生成的檔案在:C:\Users\使用者名稱.ssh中,有兩個檔案

          • id_rsa

          • id_rsa.pub

        • 把公鑰配置在碼雲中

          開啟.ssh檔案中的id_rsa.pub,把檔案中的內容複製到Github或者Gitee裡的

          個人資訊設定 ---> 公鑰設定 ---> SSH公鑰設定中

    • 3、建立遠端倉庫

10、關於Git分支說明

  • Git分支中常用指令

    • 列出所有本地分支:git branch

    • 列出所有遠端分支:git branch -r

    • 新建一個分支,但依然停留在當前分支:git branch branchName

    • 新建一個分支,並切換到該分支:git checkout -b branchName

    • 合併分支到當前分支:$ git merge branchName

    • 刪除分支:$ git branch -d branchName

    • 刪除遠端分支:

      $ git push origin --delete branchName

      $ git branch -dr branch/remote

Git大全

Git大全