2013-08-20 26 views
2

有沒有辦法有兩臺機器,假設A和B我如何:Git單向推/不可編輯工作目錄?

  • A是我的本地機器,在那裏我發展我的代碼,並將其推入。
  • B是一個服務器,永遠不需要編輯代碼,但需要一個工作目錄。

是否有可能做到這一點的B做任何git pull的任何?


我基本上只想用git one way。在一個方向。有點像使用rsync將本地目錄同步到遠程目錄,但使用版本控制。如果這對於git來說是不可能的,是否可以使用其他任何東西?

再一次,最好使用版本控制。

+0

你可能會想位置讓B處於分離頭狀態,以便您可以將新代碼推送到B.然後使用post-receive鉤子,讓B直接檢出最新提交(不是分支,因爲當前檢查時無法更新分支-out不使用'pull'或'merge')。 – 2013-08-20 05:44:28

+0

這可能是有趣的:[Git - 同步存儲庫與檢出分支最簡單的方法](http://stackoverflow.com/questions/4011089/git-simplest-way-to-sync-a-repository-with - 檢查了分支機構) – detly

回答

3

這個article解釋得很好。我會從那裏複製代碼。

它假定您在服務器和工作站之間設置了SSH驗證(無密碼)。

在服務器上:

mkdir website.git && cd website.git 
git init --bare 
mkdir /var/www/www.example.org 
touch hooks/post-receive 
chmod +x hooks/post-receive 

然後把這個鉤子/後收到

#!/bin/sh 
GIT_WORK_TREE=/var/www/www.example.org git checkout -f 

在本地的Git倉庫:

git remote add web ssh://server.example.org/home/ams/website.git 
git push web +master:refs/heads/master 

配置:

  • /var/www/www.example.org是這個網站的公共根。
  • /家庭/ AMS是您創建website.git
  • server.example.org是你的服務器的域名,IP或主機別名
+0

嗨,謝謝你,但我不能讓它運行。出現錯誤 - 致命:'〜/ website.git'似乎不是git存儲庫 致命:無法從遠程存儲庫讀取。 希望你能幫助我。謝謝 – andsien

+0

@andsien,也許你沒有SSH設置;或者您正在混合需要在服務器上運行的命令以及需要在計算機上運行的命令。 – FakeRainBrigand

+0

嗨,感謝您的回覆。我已經知道了,我沒有使用我的網站的公共根。 – andsien