2013-11-28 21 views
0

這是我第一個關於Stack Overflow的問題,所以第一件事:「大家好!」Git:如何在主體.git中獲取具有不同來源的主體.git和子目錄?

我目前是法國一所IT學校的學生,名字是42,我在問自己上面可以看到混淆的問題。

因爲它是如此模糊,我會盡量做到真正清楚,所以在這裏它是:

  • 我們與「項目」
  • 每個項目的工作符合回購學校服務器上
  • 我們的工作是爲了被評估而推到那個特定的回購中

例如,我在過去一週工作過一個名爲「libft」的項目,我們試圖實現基本的libc函數a nd其他有用的東西。我必須將我的工作推到地址「[email protected]:algo-1-001/2013/par-1-1/libft/nsierra-」的回購站。 嗯,你明白了。

除此之外,我想擁有一個個人Git回購,包括迄今爲止所做的所有工作以及我將要完成的所有工作。例如,我們將處理一個名爲ft_ls的項目,我們必須實現一個像「ls」命令行函數一樣工作的函數。該特定項目的地址爲「[email protected]:unix-1-001/2013/par-1-1/ftls/nsierra-」。

這是我的問題。 我想,如果我能,容易激動,對第一手:

  • 我個人的混帳回購這樣的組織:

    personalrepo/ 
    
         libft/ 
    
         ft_ls/ 
          ... 
    

而在另一方面學校這些存儲庫必須與所描述的子目錄相對應,但絕不能被視爲子目錄,而是整個項目。

顯然,我的目標是在學校管理這個文件夾,就像我個人的回購一樣。

我不知道我是否清楚......

我的終極目標是,當我在與一個學校項目的子目錄,才能夠像做一個簡單的git push並承諾將發送到學校服務器(考慮根目錄的子目錄)和我個人的回購(被認爲是子目錄的子目錄)。

你可以問我什麼。我完全意識到我無法清楚地表達自己。 謝謝!

編輯:

什麼我迄今所做的是:

  • 在我的「上層項目」目錄(在我的情況我稱之爲personalrepo),我使用此命令行克隆我的項目回購git submodule add [email protected]:algo-1-001/2013/par-1-1/libft/nsierra- libft/這將在對應通用的:git submodule add myprojectrepo myproject
  • 現在,當我運行ls我得到: ls -a . .. .git .gitmodules libft
  • 我再COMMITED,而在上層項目目錄,使用S執行git commit事情。

現在這是我的問題。 當我進入我的sourceforce頁面時,我只能看到.gitmodules文件,而不是文件libft。 我該怎麼做? 再次感謝!

回答

1

我做了什麼來解決我的問題:

我沒有使用任何的Git功能的畢竟。我創建了一個文件,我的上層項目目錄名爲.gitmodules內部和手動寫道:

[submodule "libft"] 
path = libft 
url = [email protected]:algo-1-001/2013/par-1-1/libft/nsierra- 

等等等等與每一個項目我了。

然後,我只是在我的超級項目目錄中克隆我的項目。我所要做的就是簡單的git add libft,它的功能就像一個魅力。 在我的子模塊內部,我只需編輯所需的所有內容,當我將其推送到其原點時,當我處於超級項目目錄中時,可以添加對子模塊所做的每個更改,然後進行提交,然後推送到超級項目原點。

謝謝!

0

我認爲git submodules是最接近你要找的東西 - git help submodule。不過,它們並不總是最合適的。

+0

實際上是我發現了一些信息,這個特定的功能,但事情是它是一種對我來說很難理解它由於語言...... 我明白那是什麼我可以這樣做: '混帳子模塊添加personal_repo subdirectory_of_submodule',但是如何將其推送到我的學校服務器?我可以在哪裏添加學校服務器地址? –

+0

最重要的是,之後: - 如何僅在學校服務器上推送它? - 如何更新我的個人回購,包括子模塊? –