2012-08-05 111 views
189

我不完全理解使用Git或Github的目的;我知道這有助於跟蹤您的更改,這對與其他人合作的人員很有幫助,但我不與任何人合作,因此我不知道這對我是否有所幫助。瞭解Git和GitHub的基礎知識

我通常是作爲網頁設計師/開發人員工作,但我從不需要協作。我知道你有創建,推,承諾,創造每一個存儲庫,但樹枝等的Git ...

  1. 是什麼Git和GitHub上的區別?

  2. 是否git在本地(在用戶的機器中)和GitHub中保存每個存儲庫?

  3. 你可以使用沒有GitHub的Git嗎?如果是的話,使用GitHub有什麼好處?

  4. Git如何與Time Machine等備份系統進行比較?

  5. 這是一個手動過程,換句話說,如果您不承諾,您將不會有新版本的更改?

  6. 如果不合作,並且您已經在使用備份系統,那麼您爲什麼要使用Git?

+0

也許它可以幫助別人理解差異:http://pedrorijo.com/blog/git-init – pedrorijo91 2017-06-27 14:27:06

回答

236
  1. 是什麼Git和GitHub上的區別?

    Git是一個版本控制系統;將其視爲您的代碼的一系列snapshots(提交)。您會看到這些快照的路徑,它們按照何種順序創建。您可以讓分支進行實驗並回到您拍攝的快照。

    GitHub是一個網頁,您可以在其上發佈Git存儲庫並與其他人協作。

  2. 是Git的本地保存每一個存儲庫(在用戶的機器),並在GitHub上?

    不,它只是本地的。你可以決定在GitHub上推送(發佈)一些分支。

  3. 你可以使用沒有GitHub的Git嗎?如果是的話,使用GitHub有什麼好處?

    是的,如果你不使用GitHub,Git運行本地。使用GitHub的替代方案可以在託管在Dropbox上的文件上運行Git,但GitHub是一種更加簡化的服務,因爲它是專門爲Git製作的。

  4. Git如何比較Time Machine等備份系統?

    這是一個不同的事情,Git的,您可以跟蹤變化和開發過程。如果您將Git與GitHub一起使用,它將成爲備份。但是,通常情況下,您不會一直推送到GitHub,在這種情況下,如果出現問題,您將無法進行完整備份。 我在一個與Dropbox同步的文件夾中使用git。

  5. 這是一個手動過程,換句話說,如果你沒有提交你將不會有新版本的更改?

    是的,提交和推送都是手動的。

  6. 如果不合作,並且您已經在使用備份系統,那麼您爲什麼要使用Git?

    • 如果遇到錯誤之間提交您可以使用命令git diff查看當前碼和最後一個工作日提交之間的差異,幫助您找到您的錯誤。

    • 你也可以回到最後一次工作提交。

    • 如果您想嘗試更改,但不確定它是否有效。你創建一個分支來測試你的代碼更改。如果工作正常,則將其合併到主分支。如果不是這樣,你只需將分支扔掉並返回主分支。

    • 你做了一些調試。在提交之前,您始終查看上次提交的更改。您會看到您忘記刪除的調試打印語句。

請務必檢查gitimmersion.com

+5

最後一段中的第一節真的很不錯。也爲此檢出'git intersect'。 – 2012-08-09 07:29:09

+1

@ H2CO3你的意思是'git bisect'? – 2012-12-23 12:17:28

+0

@SimonWhitaker是的,這是一個錯字。 – 2012-12-23 12:21:00

42
  1. 是什麼Git和GitHub上的區別?

    Linus Torvalds會爲此殺死你。 Git是他編寫的版本管理程序的名稱。 GitHub是一個可以通過Git管理源代碼庫的網站。因此,GitHub與原來的Git工具完全無關。

  2. 是git保存本地(在用戶的機器中)和GitHub中的每個存儲庫?

    如果您提交更改,它將在本地存儲。然後,如果你推動提交,它也會遠程嘲笑它們。

  3. 你可以使用沒有GitHub的Git嗎?如果是的話,使用GitHub有什麼好處?

    你可以,但我確定你不想爲自己手動設置一個git服務器。 GitHub的好處?好吧,易於使用,很多人都知道它,所以其他人可能會發現你的代碼,並跟着/分叉它來改進。

  4. Git如何比較Time Machine等備份系統?

    Git是專門爲源代碼設計和優化的。

  5. 這是一個手動過程,換句話說,如果你不提交你 不會有變化的新版本做?

    沒錯。

  6. 如果不合作,並且您已經在使用備份系統,那麼您爲什麼要使用Git?

    參見#4。

+5

其實,你可以完全使用本地的git。唯一的原因,爲什麼你會使用github是發佈你的源代碼。例如對於協作。如果你不想這樣做,你不需要一個混帳服務器。 – 2012-08-05 21:12:46

+0

@ DavoudTaghawi-Nejad是的,但我確定OP是指'沒有Github'作爲'不專門用於GitHub'。我也相信從#2中可以明顯看出,只能在本地使用git。 – 2012-08-05 21:14:39

+4

@ DavoudTaghawi-Nejad我使用github作爲備份,而不是用於協作。如果有火災/ etc代碼是安全的。 – Thufir 2012-08-09 06:02:03

28
  1. 是什麼Git和GitHub上的區別?

    Git是一個分佈式版本控制系統。它通常運行在本地機器的命令行中。它會跟蹤您的文件並修改這些文件在「存儲庫」(或「回購」)中,但只有當您告訴它時才這樣做。 (換句話說,您決定要跟蹤哪些文件以及何時對任何修改進行「快照」)。

    相比之下,GitHub是一個網站,允許您在線發佈您的Git存儲庫,這對於很多原因(見#3)。

  2. 是Git的本地保存每一個存儲庫(在用戶的機器),並在GitHub上?

    Git是被稱爲"distributed" (rather than "centralized") version control system,因爲你可以從網上本地和離線運行它,然後「推」,只要你喜歡更改到遠程系統(如GitHub上)。因此,回購的變化只出現在GitHub上,當你手動讓Git來推動這些變化。

  3. 你可以使用沒有GitHub的Git嗎?如果是的話,使用GitHub有什麼好處?

    是,還可以使用Git沒有GitHub上。 Git是實際跟蹤你的修改的「主力」程序,而GitHub只是託管你的倉庫(並提供Git中沒有的其他功能)。這裏有一些使用GitHub的好處:

    • 它提供了文件的備份。
    • 它爲您提供了一個導航您的回購的可視化界面。
    • 它給其他人的方式來瀏覽你的回購協議。
    • 這使得回購協作變得容易(例如,多人有助於同一項目)。
    • 它提供了一個輕量級的問題跟蹤系統。
  4. Git如何比較Time Machine等備份系統?

    的Git做備份你的文件,但它可以讓你備份你什麼時候更精細的控制比傳統的備份系統。具體而言,每次您想要對更改進行快照時,都會「提交」,並且該提交包含更改的說明以及這些更改的逐行詳細信息。這對於源代碼是最佳的,因爲您可以輕鬆地逐行查看任何給定文件的更改歷史記錄。

  5. 這是一個手動過程,換句話說,如果你沒有提交你將不會有新版本的更改?

    是的,這是一個手動過程。

  6. 如果不合作,並且您已經在使用備份系統,那麼您爲什麼要使用Git?

    • 的Git採用強大的branching system,讓您在發展的多個獨立的線同時工作,然後根據需要這些分支合併到一起。
    • Git允許您查看不同版本的文件之間的逐行差異,這使得故障排除更容易。
    • Git強制你描述你的每一個提交,這使得跟蹤給定文件的特定先前版本(並且可能恢復到先前版本)變得更加容易。
    • 如果您需要關於代碼的幫助,可以通過Git進行跟蹤並託管在GitHub上,這樣其他人就可以更輕鬆地查看您的代碼。

入門使用Git,我推薦的在線圖書Pro Git以及GitRef作爲方便的參考指南。爲了開始使用GitHub,我喜歡GitHub's Bootcamp和他們的GitHub Guides。最後,我創建了一個簡短的videos series向初學者介紹Git和GitHub。