2012-10-26 100 views
2

可能重複:
What is a version control system? How is Git useful?使用Git版本控制

我是新來的Ruby on Rails的平臺,所以這聽起來可能有點天真。


爲什麼和我們什麼時候我們的工作存儲在版本控制系統如Git?


我的意思是它的優勢!我們不能把它放在我們的本地機器上嗎?

+0

我推薦閱讀[本書]的第一章(h ttp://git-scm.com/book)[git-scm.org]。這是一個非常輕鬆,簡單,快速的**閱讀,它很好地解釋了爲什麼要使用源代碼管理(SCM)系統,特別是'git'。此外,它還有一些非常清晰,清晰的圖表來解釋概念,我發現它非常有用。 – simont

回答

3

優勢,爲使用Git /源控制:

對於自己

  • 記住你已經編寫什麼,當你做到了
  • 如果能夠比較你對以前的工作
  • 什麼
  • 允許您處理某些實驗,如果它不起作用,請將其切換回之前的位置

與團隊

  • 它與其他工作更輕鬆的工作 - 你可以在同一時間對同一文件工作,真的很容易合併更改。
  • 它可以讓你在多個地點工作,並輕鬆擁有最新的代碼
  • 將部署你的代碼到服務器

example of a diff and branches

Git workflow for teams

Git branching model

幫助

何時存儲或提交您的作品:

每次完成某個特定的「想法」或您正在進行的工作時,都希望這樣做。這意味着你可以擁有一個有用的提交信息,並且可以回到剛纔寫的那個特性或者你剛修復的那個bug。

How often and when to commit

理由使用Git比其他源代碼控制

  • 其快速(開關支路實在是快,你有一個本地副本,讓你沒有傳達給一臺服務器很多事情,除非你想推或拉更改服務器)
1

是的,這看起來很幼稚,但每一個問題值得一問!

首先,使用SCM(軟件配置管理器),將極大地幫助你在許多場景:

  • 嘗試實驗性功能不接觸主代碼
  • 發展的幾個獨立的想法同時
  • 從失敗的更改中恢復,只要它們很複雜幷包含多個文件中的更改。
  • 跟蹤特定版本中使用的確切代碼,以修復報告的錯誤。

這並不甚至開始接觸,如果在一個團隊中工作,而不SCM你不得不工作的無限量。

使用SCM不涉及網絡,git和任何其他分佈式SCM對於本地開發同樣有效,因爲存儲庫都在您的計算機中。你只是不拉和推。

1

選擇不是將代碼存儲在版本控制中還是將其存儲在本地計算機上。事實上,與其他版本控制系統(如Subversion,也被稱爲svn)不同,Git不需要運行服務器。

通過版本控制可以輕鬆瞭解進行了哪些更改,查看和恢復舊版本的文件,甚至可以將更改從一個版本導入到另一個版本。

RETRIEVAL:想象一下,你正在自己的項目上工作。你刪除了一個你認爲不再需要的舊文件。一週後,你意識到這個文件非常重要。如果您使用版本控制,您可以在刪除文件之前查看該文件的外觀,並將其恢復爲從未刪除。另外,大多數提交給版本控制的更改都包含消息;如果你加入了一個團隊,並且以前的開發者使用了版本控制(具有良好的提交信息),那麼你可以更容易地瞭解更改的時間和原因。

多個發佈(分支):現在想象你的軟件是版本1.0。您正忙於2.0版本,但有人提出錯誤。你能做什麼?使用版本控制,您可以縮小到版本1.0,進行一些更改,然後創建版本1.0.1。大多數版本控制平臺甚至允許您將版本1.0.1中所做的更改應用到您在2.0版中所做的工作中。

多功能:您的軟件非常成功,您每週開始發佈它。但是,並非每個功能都準備好發佈。首先你開始編寫小部件的功能,比你開始編寫的功能更容易功能。如果您同時使用這兩種功能,則可能同時開發兩種半編碼功能,而且沒有任何功能足以發佈。通過版本控制,只要其中一項功能完成,您就可以將它合併到「主要」版本中,就像您在一天內寫入一樣。

協作:最後,現在想象你在一個團隊中的五名六個開發人員在同一代碼的所有工作是。當然,您不希望來回發送代碼的zip文件,尤其是當每個開發人員都在開發單獨的功能時。通過版本控制,您可以擁有一個歷史記錄,您的所有開發人員都可以對其進行編寫和閱讀。

當然,上述的一些可以通過在不同的相鄰目錄中保存相同文件的多個副本來完成。版本控制軟件的好處在於,它可以爲您處理大部分工作,同時避免在磁盤上反覆複製同一文件。

囉嗦 - 對不起 - 但希望有所幫助!使用Git的

1

優點:

  • 代碼將在遠程回購安全,即使本地項目崩潰
  • 您可以嘗試新的東西,而不用擔心以前的作品,因爲他們可以檢索
  • 代碼可以從世界任何地方訪問
  • 在團隊中工作時,所有工作將存儲在一個地方,以便團隊中的每個人都可以訪問
  • 每個每個變化都可以很容易地跟蹤,誰做的和他們做什麼的時候
  • 部署應用程序將更容易
  • 您可以有多個版本/分支,以便您可以輕鬆識別添加到在每一個版本
1

你看@arulmr@kieran-andrews@Jeff@rewritten那個帖子很多優點,但仍,如果你想了解更多詳細你可以看到下面的應用程序鏈接

1)http://git-scm.com/book/ch8-1.html

2)http://www-oss.fnal.gov/~mengel/git_vs_subversion.html.bak

3)https://git.wiki.kernel.org/index.php/GitSvnComparison

4)http://www.wikivs.com/wiki/Git_vs_Subversion #History,建築,許可證,性能,GIT中和svn

現在的特點GIT中和顛覆之間的差

1)http://boxysystems.com/index.php/5-fundamental-differences-between-git-svn/