git init bare project.git 跟rails 怎麼一起用?


#1

RailsFun.tw 新手教學 day2 HD

剛開始的地方在教 git init --bare xxx.git
如果在根目錄把xxx.git直接clone下來,
根目錄會直接建一個xxx的資料夾,(不是xxx.git)
進入xxx後要輸入ls -al,
才會看到一個.git的資料夾。

不過如果我已經用rails new espn建了一個專案
在root/espn 把xxx.git給clone下來
這樣也會在espn裡面建了一個xxx的資料夾,
不過,這樣變成要在espn/xxx裡面才可以使用git status
我在espn/打git status會出現fatal: Not a git repository (or any of the parent directories): .git
在espn/的其他資料夾做任何的變更,好像都沒有辦法做到版本控制。

可是我的專案是在espn裡面,不是在xxx裡面啊?
請問這樣該如何處理?


#2

git init --bare 是要自己建立 git 裸儲存庫才需要使用,就是要自己架一個git server。
一開始學習建議使用 git 搭配 github 或 bitbucket 簡單好用。


#3

你 clone 下來一定是整個 git 專案放在一個資料夾裏頭,如果你要把你的 rails 專案加進去的話只能手動貼進去了,例如:

/root $> rails new espn # 這裏會產生 espn 資料夾,我們用來放 rails 的
/root $> git clone xxx.git # 這裏會產生 xxx 這個資料夾,是我們的 git 專案
/root $> mv espn xxx/espn # 把 espn 搬進 xxx/ 下面,就是把 rails 專案放進 git 裡面
/root $> cd xxx/espn # 切換進 rails 專案之後就可以修改 git 記錄了


#4

@david50407
我試過把.git這個檔案mv到espn裡面去,不過行不通。
你建議把espn搬過去,倒是可以試看看。

@Steven
你這樣一講,我才理解原來git server就跟github的意思一樣阿~
所以其實我可以用git init的方法在espn裡面建儲存庫,然後push original到那個裸庫去,應該也是一樣的道理吧?
就像這裡的思路三一樣?
在服务器上创建 git 裸仓库


#5

是的 github 就是加強版的 git server。
一般使用 push 到 origin (branch 名稱) 就可以了
要自架 git server 除了使用 git init --bare 指令以外,也可以用 gitlab
gitlab 也是使用 ruby on rails 作為 framework
所以學會 deploy production 之後,可以玩玩看架設 gitlab