2012-03-11 74 views
2

我在大學,我的小組一起開始一個編程項目。在保持git的同時教git'像svn一樣簡單'

在之前的課程中,我們學習了svn的基礎知識以及如何提交以及如何使用Toitosesvn。我們被告知不要擔心分支(因此沒有被教導),因爲它是一個相當小的程序。在這個項目中,svn服務器出現故障,導致每個人都無法工作,但是人們並沒有多想。

對於這個項目,我推動有一個DVCS。在解釋了git與svn的不同之處之後,他們表示它可以,但是希望它像使用svn一樣簡單。由於我們將使用Eclipse ^,他們只是想要說明如何在Eclipse中使用git。 (我計劃使用EGit

由於我們沒有被教導過,分支對於其他成員來說是一個外國概念。但是,由於git中的新概念(例如分支),如何使用GUI並不是唯一需要教授的東西。

如何以一種容易讓svn開發者使用gui的方式介紹git的概念?

注:正在使用Git的,因爲我推,我知道它(不知道水銀或集市)

^:我們將建立一個機器人程序。

+0

這絕對不會是你想要聽到的,但是:1)忘記你學習SVN的任何知識,術語與git相似,但有着不同的意思,讓人感到困惑。 2)EGit真的很糟糕。至少,去年是這樣。我懷疑它變得好多了。它以奇怪和隨機的方式打破,它不支持子模塊等。你會更好地使用命令行中的git。 – 2012-03-11 03:50:06

+1

不同的問題。你如何以這樣的方式教Git,任何人都會認爲它比svn更困難? – 2012-03-11 03:51:49

+0

「Git - SVN崩潰課程」http://git.or.cz/course/svn.html?基於你的svn知識的git。 – 2012-03-11 03:52:28

回答

3

的幾個注意事項:

  • Git Ready是一個善良,溫柔的介紹Git的。

  • 我也喜歡Git for Computer Scientists的視覺性質。

  • Git與Subversion不太相似。試圖在他們兩人之間繪製類比可能只是會混淆你的隊友需要在git中工作的心智模式。

另一方面,我不會讓你的隊友太難使用他們不熟悉的技術。現在有適當的時間和錯誤的時間來介紹技術,並且在編程項目的有限範圍內,學習如何使用DVCS可能不是一種方法。作爲一名優秀開發人員的部分是知道當不是打一些戰鬥。

最終,git對生產力有很大的提升,但如果它是以降低你的團隊的其他成本爲代價的話,那麼它就不是。

+0

我也很喜歡「計算機科學家的git」。雖然這很簡單,但對於告訴你關於命令集的信息並沒有多大意義。 – torek 2012-03-11 03:55:52

2

Mercurial實際上可能更容易,因爲它更自動。你可以把Hg看作「沒有索引的git」,這一切意味着這一點。 :-)汞也禁止歷史重寫,這有其優點和缺點;特別是,它意味着您需要像隊列那樣的附加組件,以便在開發過程中爲其他人提供補丁。

所有這一切不談,其實我對混帳瘦自己,部分原因是它「作品的權利」,即使用戶界面是極其複雜的。如果你讓人們開始使用git 1.7.x,他們通常只會記得「git commit -a」。

+1

如果它「工作正常」,我們還沒有像git-troubleshooting這樣的巨大問題 - 就像我們現在 - 現在在這裏! – 2012-03-11 12:08:09

+0

heh。這是因爲用戶界面和術語...「不是最好的」,我們應該說嗎? :-) – torek 2012-03-11 20:03:24

+0

我們在這裏看到比術語和GUI更深的麻煩。我認爲它們是建築的缺點* – 2012-03-11 21:06:25

1

簡短的回答:Nohow


爲了避免所有的尖角你要忘了

  • 分行
  • 走在歷史
  • 許多遙控器(因此 - d -VCS性質)

這種情況下,你幾乎沒有從VCS本身

BTW,顛覆背景的Git,新人更負,比加

「的Git,SVN速成班」,幫助一些方法,但不能完全解決所有的煩惱

PS:也許跨平臺SmartGit可以讓Git的生活更容易

0

您可以安裝SubGit(subgit.com)SVN服務器上。之後,服務器將獲得2個接口:SVN和Git。我的意思是,如果您推送到Git存儲庫,這些更改將自動轉換爲SVN存儲庫;反之亦然。

它保留了Subversion的主要概念,比如ignore,EOLs-management,tags,merges等等(比git-svn好得多)。