像使用git的程式設計師一樣管理檔案版本控制

程式設計師建立了版本控制系統(VCS)來解決檔案版本控制問題。讓我們看看今天使用頂級系統Git進行版本控制的基礎知識。...

如果你曾經和同事一起寫過一份文件,你就知道這種痛苦:有人先通過(文檔.doc),然後發郵件給每個人。下一個人和第三個人做同樣的事情,每個人在文件名上加上一個修訂(document\u rev3.doc)。經理喜歡她所看到的,並將其標記為完整(文檔)_最終.doc)... 直到最後一刻的變化出現(文件\u最終\u亞倫的變化\u審查\u鮑勃\u現在\u真的嗎_最終.doc).

file-versioning

現在想象一下在幾十個源代碼文件中發生這樣的變化。程序員創建了版本控制系統(VCS)來解決這個問題。它們在本質上有點技術性,但對高級用戶也很有用。讓我們看看今天使用頂級系統Git進行版本控制的基礎知識。

使用中的版本控制概述

VCSs的主要目的是捕獲文件隨時間變化的版本(也稱為修訂版)。這意味著不要依賴像上面描述的那種粗糙的方法。在這些系統中,當您訪問文檔.doc“默認情況下,您使用的是最新版本。但是您也可以返回到文件的歷史記錄並檢索過去的版本。專門為管理文件版本而構建的系統始於軟件開發,但也進入了更“主流”的應用程序。

軟件開發中版本控制的演進

版本控制應用程序最初是為了防止程序員破壞彼此的代碼而產生的。第一代系統只允許用戶鎖定其他編輯的文件,而第二代系統(如Subversion)則添加了從中央存儲庫進行的完整項目簽出。

雖然這些第二代系統仍在廣泛使用,但該行業正在向第三代系統轉移。這些系統的主要特點是它們是分佈式的,這意味著沒有中央存儲庫。相反,每個用戶都有自己的存儲庫的完整副本(包括所有以前的修訂版)。但是任何更改(甚至是完整的修訂)都是“本地”的,直到他將它們“推”到另一個存儲庫。然後,該用戶可以提取克隆以進行更改並重復該過程。

version control system flow

非程序員的當前版本控制

捕獲同一事物的多個版本的能力也是普通用戶的共同特徵。通過在本地計算機上和通過易於使用的雲服務訪問更便宜的存儲,用戶現在可以跟蹤其文件的歷史記錄。通用程序以多種方式實現這一點。

操作系統可以捕獲文件或文件夾的歷史記錄。這可以在每次保存文件時自動執行,也可以按常規計劃執行。一些桌面應用程序還允許您捕獲文件的版本或快照。例如,LibreOffice提供了“保存版本”功能(如下圖所示),允許您在一個文件中保存文檔的多個版本。最後,Google Drive、ownCloud等web/cloud應用程序也會將過去的文件或文檔迭代(如下圖中Google文檔所示)保存在後臺或您的express命令下。

version control system lo versi***

version control system google docs versi***

為什麼要使用以編程為中心的版本控制呢?

既然操作系統或應用程序級別的所有這些選項都已經存在,為什麼還要費心使用這些乏味的程序員工具呢?上述方法有幾個缺點,包括:

  • 有些操作系統會將您對文件所做的每一個調整保存到新版本中。這不僅會佔用不必要的存儲空間,而且很難確定文件的特定還原點。
  • 這些解決方案還可以使用文件作為管理的基本單元。但是版本控制系統通常工作在目錄級別(包括子目錄)。VCS可以很容易地精確地查看文件更改的內容和時間。
  • 在大多數情況下,這些相同的解決方案也不能為迭代添加標籤。這同樣使你很難找到你在某個時候,在你意識到它是多麼輝煌的超寫文本通過文件。
  • 通過操作系統和應用程序(如Word)進行版本控制也會引入單點故障。換句話說,就是文件本身(如果它被破壞了,也要和你過去的所有副本說再見)。對於操作系統來說,它是硬盤,除非你是一個負責任的用戶並且定期備份。
  • 基於web的服務的本質意味著舊版本可能在雲端。例如,如果您嘗試在Linux上查看Dropbox文件的歷史記錄(如下圖所示),您將被重定向到網站。

version control system dropbox history

如果這些問題中的任何一個或所有讓您想要更多的東西,請查看下一節,我們將用Git解決這些問題。

git版本控制

在下面的小節中,我們將為一個非常重要的項目逐一介紹這些步驟:本文。我們將使用Git的命令行版本來實現這一點。瞭解終端命令可以很容易地找到它們的GUI等價物,並保證您可以在每個平臺上使用它。

1設置git存儲庫

如果您的計算機沒有安裝git(Mac和某些Linux發行版一樣),您可以從項目的下載頁獲取Windows安裝程序,或者使用命令(特定於您的發行版)在Linux上安裝,例如:

sudo apt install git

接下來我們需要做的是建立一個git存儲庫,它只是一個存放項目的文件夾。要利用Git版本控制,您需要將文件夾初始化為存儲庫。可以在命令行中使用以下命令執行此操作:

git init

git init fileman

完成後,您可能看不到任何內容,但在文件管理器中啟用“顯示隱藏文件”選項,您將看到一個新的.git文件夾(如上圖所示)。這是git保存所有信息的地方,所以它不會妨礙你。

2添加並提交第一個文件

下一步是在項目中創建一些內容(文件)。這些文件可以是任何類型的文件,因為大多數編程項目都由代碼(文本)和圖形(二進制)等資產組成。創建後,仍在項目目錄中時,在命令行中執行以下操作:

git status

git status

提交的第一步是“暫存”新的或更新的項。看看上面的輸出如何讓你知道有“未老化”的變化?您可以使用以下命令暫存目錄中的所有內容(遞歸,即包括子文件夾及其文件):

git -a .

“-a”標誌表示“add”,句點指當前目錄。基本上是說“將所有文件添加到我的提交中”。現在要真正進行提交,請鍵入以下內容:

git commit -m "WHOOP, my first commit!"

git add commit

現在,當您再次檢查狀態時,應該沒有等待的更改。要查看提交本身,請使用圖形模式檢查git日誌,將列表剪切為一行,並進行修飾以確保可讀性:

git log --all --decorate --oneline --graph

git log

這將向您展示一個很好的提交時間表,最新的在最上面。

三。創建要實驗的分支

當你工作的時候,你可能想朝一個特定的方向走,不知道它是否會成功。為此,您需要使用以下命令創建分支:

git branch experiment1git checkout experiment1

git branch

第二個命令將您切換到“experiment1”分支。您可以通過將其替換為“master”進行切換。當您開始處理文本時,請注意每個分支中相同文件之間的差異。首先,“experiment1”分支包含您的新文本:

git branch experiment1

將此項與原始項進行比較:

git branch master

現在,在工作了一段時間後(以一個新的提交結束),你能想到的最好的方法是“Lorem ipsum悲哀坐在amet…?”那是什麼?這是胡說八道,應該立即從你的項目中刪除。您可以使用以下命令(force delete為“-D”)將分支丟棄:

git branch -D experiment1

git branch delete

現在開始另一個分支並添加一些智能內容,以及一些圖像:

git branch experiment2git checkout experiment2 git add . git commit -m "More text, added images"

git add commit branch

4合併您的更改

最後,一旦您對當前分支中的更改感到滿意,下面的命令將把它們與“主”分支合併。如果您沒有在這兩者之間來回跳轉太多,這將導致應用所有新更改,並創建新修訂。命令行中的以下命令將為您合併它們:

git merge experiment2

git post merge

現在,您將擁有一個結合了最新版本“master”和最新版本“experiment2”的修訂版。此時,您可以通過以下內容擺脫實驗(畢竟它是成功的):

git branch -d experiment2

請注意,這樣做只會丟失在該分支中所做的任何增量更改。

5推到安全的地方

最後,Git是一個分佈式系統,這意味著您可以擁有存儲庫的多個副本並對它們進行同步。例如,在服務器上創建一個新的存儲庫,您可以使用以下命令通過SSH連接到該存儲庫:

git init --bare

“--bare”標誌將其設置為一種只讀存儲庫,因為您不能直接修改文件。然後,可以使用以下命令將其設置為本地存儲庫的遠程副本(第一個命令確保遠程創建新的本地分支):

git config push.default matchinggit remote add central ssh://[username]@[URL]/path/to/repository git push --set-upstream central master

git remote

使用git設置版本控制和備份

通過上面的設置,您可以按照一個簡單的過程來保持對項目所做的所有工作不僅進行版本控制,還可以進行備份。

  1. 對項目文件進行更改。
  2. 發出“git add.”將所有更改添加到提交中。
  3. 發出“git commit-m[some message]”將更改提交到本地存儲庫。從頭開始重複。
  4. 發出“git push”以定期將更改提交到遠程存儲庫。
  5. 從其他計算機發出“git clone ssh://[username]@[URL]/path/to/repository”到

版本控制系統的好處讓你感興趣嗎?或者非開發備份應用程序是否足以滿足您的需要?請在下面的評論中告訴我們您的想法!

  • 發表於 2021-03-13 08:00
  • 閱讀 ( 38 )
  • 分類:程式設計

你可能感興趣的文章

xcode程式碼(xcode)和敏捷的(swift)的區別

...。Xcode提供的介面生成器對於建立無需太多程式碼的圖形使用者介面非常有用。它提供UI控制元件與實現程式碼的連線。IDE還包括對程式設計師有用的蘋果開發人員文件。 Xcode的另一個優點是它透過GIT和subversion提供版本控制。對...

  • 發佈於 2020-10-16 12:12
  • 閲讀 ( 47 )

吉特(git)和github(github)的區別

...史的軟體。它可以儲存檔案的更改和原始碼的修改。每次使用者更改專案時,版本控制系統都會獲取專案的狀態並儲存它們。專案的這些不同儲存狀態稱為版本。例如,如果程式設計師正在構建一個網站,它將儲存為版本1。稍...

  • 發佈於 2020-10-19 21:44
  • 閲讀 ( 48 )

如何使用git分支來構造程式設計專案

... 透過對原始碼管理的介紹,我們瞭解到您可以在終端中使用以下命令建立新的儲存庫: ...

  • 發佈於 2021-03-12 01:24
  • 閲讀 ( 48 )

VisualStudio程式碼是mac的完美文字和指令碼編輯器

... 如果您是一個必須使用Windows系統的系統管理員,也可以使用程式碼在Mac上編寫Powershell。開發人員可以找到支援幾乎任何語言的外掛。 ...

  • 發佈於 2021-03-14 07:11
  • 閲讀 ( 55 )

10種最常見的程式設計和編碼錯誤

...基本原則之一,你會遇到你的學習。這通常被縮短為DRY,使用這個原則編寫的程式碼稱為DRY程式碼。 ...

  • 發佈於 2021-03-18 04:48
  • 閲讀 ( 52 )

為編寫者和開發人員提供的5個最佳mac檔案比較工具

... Meld是一個簡單的diff和merge工具。使用者介面直觀,將所有功能整齊地打包到一個方便的選單中。它有許多可自定義的設定,使檔案比較容易和快速。在第一次啟動時,應用程式為您提供了一個選擇比較模...

  • 發佈於 2021-03-18 17:33
  • 閲讀 ( 46 )

6個編碼應用程式,使程式設計更容易

...經驗的程式設計師的所有人。如果你剛剛開始,你可以在使用JavaScript之前使用這個應用來學習web技術。它也不僅僅教你如何程式設計。Enki還幫助您學習與程式設計相關的主題,比如使用Linux命令列和使用Git管理版本控制。 ...

  • 發佈於 2021-03-18 23:25
  • 閲讀 ( 61 )

如何使用github頁面免費託管網站

... GitHub是一種流行的版本控制服務,面向使用Git儲存和控制程式碼的計算機程式設計師。程式碼儲存在儲存庫中,這些儲存庫只是雲伺服器上的容器,允許您從所有計算機訪問程式碼。 ...

  • 發佈於 2021-03-19 05:27
  • 閲讀 ( 50 )

程式設計師和程式設計師的七大最佳筆記應用

...筆記的應用程式並不是為程式設計師而設計的,它們很難使用,以至於讓你完全放棄記筆記。以下是程式設計師和程式設計師最好的筆記工具。 ...

  • 發佈於 2021-03-22 01:34
  • 閲讀 ( 50 )

學習python程式設計的5個最佳網站

...許多人都愛上了Python。為什麼?因為Python易於學習,易於使用,而且非常強大。 ...

  • 發佈於 2021-03-22 19:13
  • 閲讀 ( 54 )
drnsmfjgyzg
drnsmfjgyzg

0 篇文章

作家榜

  1. admin 0 文章
  2. 孫小欽 0 文章
  3. JVhby0 0 文章
  4. fvpvzrr 0 文章
  5. 0sus8kksc 0 文章
  6. zsfn1903 0 文章
  7. w91395898 0 文章
  8. SuperQueen123 0 文章

相關推薦