這是我第一次使用GIT,所以我有幾個基本問題。GIT - 如何處理儲存庫,我在哪裏可以找到我的分支
1)假設我有一個名爲「Projects」的文件夾,裏面有20個不同的客戶端項目等等。其中「Project-1」和「Project-2」。
我應該在哪裏建立我的存儲庫? 「項目」還是我應該分別從每個文件夾中創建一個存儲庫?
2)好的,我做了一個回購。現在我想成爲一個分支,我成功了。現在我可以在哪裏看到我的分支文件?我期望在回購中有不同的文件夾 - 包括主分支和我一路創建的其他文件夾。
這是我第一次使用GIT,所以我有幾個基本問題。GIT - 如何處理儲存庫,我在哪裏可以找到我的分支
1)假設我有一個名爲「Projects」的文件夾,裏面有20個不同的客戶端項目等等。其中「Project-1」和「Project-2」。
我應該在哪裏建立我的存儲庫? 「項目」還是我應該分別從每個文件夾中創建一個存儲庫?
2)好的,我做了一個回購。現在我想成爲一個分支,我成功了。現在我可以在哪裏看到我的分支文件?我期望在回購中有不同的文件夾 - 包括主分支和我一路創建的其他文件夾。
1)通常的做法是爲不同的項目分開使用Git倉庫。這意味着您可以單獨開發每個項目,而不必擔心覆蓋您對一個項目所做的更改,如果必須將更改還原到另一個項目。
2)如果您是Git的新手,我暫時不會擔心分支。如果您創建分支,則不會在單獨的文件夾中看到它們。跟蹤分支的魔法隱藏在每個存儲庫中的.git文件夾中。
您可以通過輸入git branch
來查看您正在使用哪個分支。您可以使用git branch -a
查看所有分行。
謝謝,這解釋了很多。只是要說清楚(我必須與分支機構已經合作): 假設我有兩個分支 - 「主」和「備用」。 我這樣做:'git checkout alternate'並在file.txt中添加一行(我不承諾)。 然後我這樣做:'git checkout master',再次打開該文件 - 爲什麼我會看到更改,如果我是主人? 我假設我可以在我的編輯器中打開2個版本的file.txt並查看其中的差異,但似乎並沒有這樣工作。 – oneday
如果你想切換回主並覆蓋你的本地狀態,你可以使用''''git checkout -f -b branchname'''。這將檢出您的回購的主版本,並覆蓋文件系統上任何不匹配的文件。請注意這一點,因爲它有可能失去你所做的改變。如果您想保留任何更改,請務必在切換之前將它們提交到當前分支。您也可以使用''''git checkout filename'''來恢復單個文件,使其與當前分支中的版本匹配。 – John
@oneday如果您在備用分支上提交更改並且簽出主分支,您將看不到新代碼。但是,未分階段的更改將在分支之間移動,因爲它們未附加到特定的分支。如果你想在沒有提交更改的情況下籤出不同的分支,我建議在切換分支之前存儲更改。 – gerard
你很明顯會來自svn的git,或者像 svn。
在svn中,一切都基於文件夾 - 分支,標記和存儲庫都成爲文件夾;回購中的每個子文件夾都可以有效地成爲自己的回購等。
根據我的經驗,這種版本控制模型對於svn來說是獨一無二的。您不能在其他地方應用相同的模型。
Git的,特別是根據各地提交(實際上,對象,其中提交的是一個類型的對象,但一個更簡單的心理模型上手,讓我們想想提交)
你存儲庫是提交樹。與svn不同,一個提交可以有多個父代。
Git也是分佈式的,與svn不同,即使以集中式存儲庫類型的方式使用它,這種區別也很重要。當你推入git時,你只是將提交的樹與一些遠程提交樹同步。
而在svn中你有一個倉庫,並且你有一個本地工作副本,在git中,你克隆倉庫。你在本地擁有的是一個擁有自己權利的存儲庫,它可以擁有自己的提交和分支,並且其他人可以克隆。
所以要(終於)找到您的問題:
.git
的某個地方鬆動了;直接查看這些文件通常沒有幫助,而是使用如git branch
這樣的命令列出分支或git checkout
來更改分支。如果您想深入瞭解git的工作原理,我建議您閱讀一下Git from the inside out。沒有必要使用 git,但我發現有一個相當準確的心智模型,git在封面下做了什麼,這使得它的行爲不那麼令人驚訝。
針對不同分支的不同文件夾! **愚蠢的SVN ** – mallaudin