簡體   English   中英

Git和網站開發工作流程

[英]Git and website development workflow

我的詢問是具體的,並且我知道他們可能是主觀的; 我將不勝感激。

這是我在git之前所做的事情:

  • 我經營一個PHP / MYSQL網站
  • 我在本地開發並在WAMP上進行測試
  • 我FTP到暫存站點dev.mywebsite.com
  • 對所有更改感到滿意之后,我便通過FTP進入了實時站點

當我決定開始使用Git時:

  • 我在托管服務器上初始化了一個裸倉庫
  • 創建了一個接收后掛鈎,以部署到dev.mywebsite.com
  • 我將dev.mywebsite.com存儲庫克隆到了本地開發機器上
  • 我測試代碼->提交->推送到遠程(開發站點)

這是我的問題:

1)我需要一些文件以使其在本地與遠程上保持不同(這些文件主要是配置文件)。 我正在對這些文件使用--assume-unchanged。 但是,我讀到做'git reset'會撤銷這些操作,所以我的第一個問題是:-從本地推送到遠程時,有沒有更好的方法可以從不更改配置文件?

2)我的工作流程以我推送到開發站點而結束。 我不確定如何從那里繼續,以及如何以最有效且無風險的方式將我的代碼部署到實時網站中。

* 3)一個額外的問題:我應該將github / bitbucket / etc ..集成到我的工作流程中嗎?

謝謝

您的方法僅適用於非常小的開發團隊和小型項目,而無需復雜的部署。 但:

1)本地與遠程

我通常將配置文件的遠程版本保留在存儲庫中,並使用未跟蹤的文件在本地覆蓋它們。 然后,配置加載器搜索覆蓋,但如果沒有覆蓋,則不會失敗。

2)開發+生產

一個相當簡單的方法是保留一個分支用於開發(dev)和一個分支用於生產(master)。 實際上,或者您想要的任意多個分支。 在掛鈎中,您將獲得推送分支的名稱,並確定將新代碼復制到的位置(在最簡單的情況下)。

更新后掛鈎可能看起來像:

for arg in "$@"
do
  if [ "$arg" == "refs/heads/master" ]
  then
    DEST="/path/to/production"
    git --work-tree=$DEST checkout -f
  elif [ "$arg" == "refs/heads/dev" ]
  then
    DEST="/path/to/dev"
    git --work-tree=$DEST checkout -f
  fi
done

3)外部存儲庫

如果您想備份或與全世界共享,是的,您應該:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM