如何使用 Git 推送本地站點

已發表: 2022-10-18

許多公司竭盡全力使普通用戶的網站開髮變得簡單。 這是有道理的,因為有些網站所有者沒有(或不想)時間來學習運行本地網站的各個方面。 但是,通過一些研究,您可以使用 Git 來處理推送您的網站的過程。 這為您提供了更多的安全性,並且一旦您設置了所有內容,就可以更輕鬆地進行站點更改。

即便如此,要做到這一點無疑是困難的。 有許多先決條件需要考慮,您需要具備的技能和手頭的工具。 此外,您需要在前幾次仔細考慮該過程,因為要記住很多。 但是,幾乎每個用戶都可以使用 Git 來實時推送網站,而且不必像您想像的那麼複雜。

在本教程中,我們將逐步向您展示如何使用 Git 將本地站點推送到實時服務器。 首先,讓我們回顧一下我們將在這篇文章中介紹的一些工具和技術。

Git 簡介

對於不知情的人,Git 是一個版本控制系統 (VCS)。 這是一種保存和記錄您對項目(通常是應用程序或網站)所做更改的方法。 這是我們在其他地方涉及的內容,但您需要在本教程中了解更多相關信息。

WordPress GitHub 存儲庫。

使用 Git 的典型方法是通過命令行界面 (CLI) - 如果您有使用 WP-CLI 的經驗,這是一種類似的方法。 您將使用命令以多種方式標記和組織您處理的文件:

  • 在您發出命令之前,文件將保持“未暫存”狀態。 這意味著它們不屬於您的 Git“存儲庫”(存儲您的歷史記錄的目錄)。
  • 您將發出命令來暫存所有或部分文件,此時您仍然可以處理它們。
  • 完成後,您將文件從暫存區提交到“repo”。 這類似於保存這些更改。

它可能比這更複雜,但在大多數情況下,您將只使用少數命令來執行 Git 的日常工作。

使用 Git 進行基於團隊的開發

Git 是開發團隊的關鍵工具,因為每個開發人員都會在同一個 repo 中打開不同的“分支”。 這意味著每個人都可以在項目上工作而不會影響其他人的文件。 定期——通常作為一天中的最後一項任務——團隊將提交對 repo 的更改。

然後,團隊的高級成員將尋求“合併”所有分支並將更改一起合併到 repo 的maintrunk 。 此時,您將在 repo 中擁有一組最終的項目文件。

對於單個開發人員——可能是你——Git 作為一種增量保存工具仍然具有價值。 您將打開一個新分支,在您的站點上工作,然後暫存並提交這些更改。 這意味著您可以在分支上做任何您喜歡的事情,而不會影響您網站上的任何其他文件。 當您想提交(或刪除)時,您可以這樣做。

本地 WordPress 開發快速入門

在我們繼續之前,我們應該注意,在遠離實時服務器的站點上工作是推薦的典型做法。 如果您還沒有這樣做,請查看我們關於如何安裝 WordPress 的文章。 此外,您可能需要考慮在您的網站上使用專用應用程序。

DevKinsta 徽標。

Flywheel 的 Local 是一個不錯的選擇,但 DevKinsta 也是如此。 無論如何,有很多方法可以創建一個本地站點,這是您想要的。

為什麼要使用 Git 推送本地站點

您想要使用 Git 來推送您的網站的主要原因是我們上面提到的一個:靈活性。 Git 的性質意味著您將擁有一個主分支,作為最終的項目文件集。 但是,您可以根據需要打開任意數量的新分支——事實上,這正是大型團隊大規模使用 Git 的方式。

使用這種方法,您可以創建一個新分支來處理您網站的主頁設計,而無需影響您的核心文件。 將分支視為一種克隆,您通過分階段提交將其合併回主分支。

然而,Git 之所以有用還有其他幾個原因:

  • 您可以在任何位置託管此 Git 存儲庫。 GitHub 和 GitLab 是兩個專注於託管 Git 存儲庫的站點。 如果您需要額外的支持,您可以從那裡引入其他團隊成員或開發人員。 您甚至可以輕鬆遷移網站。
  • 當然,您不需要在實時站點上工作,從安全和性能相關的角度來看,這非常棒。 但是,您可以選擇僅推送您處理的文件。 這提供了巨大的好處,因為您不需要觸摸您的 WordPress 數據庫。 這是網站登台的關鍵目標,可以使用 Git 和本地安裝來實現。

但是,要達到這一點,您需要手頭有許多工具、技能和先決條件。 接下來,我們將了解它們是什麼。

在使用 Git 推送站點之前你需要什麼(工具和技能)

值得注意的是,在您考慮需要哪些附加功能之前,您應該已經擁有什麼。 例如,確保您手頭有以下物品:

  • 您當前網站的本地版本。
  • 以管理員身份訪問您的主機控制面板和服務器。

從這裡,您可以考慮在本地站點和實時服務器上使用 Git 還需要什麼:

  • 您需要在計算機上安裝 Git。 您通常通過命令行實現此目的。
  • 說到這一點,您需要了解如何使用命令行。 具體來說,您應該知道如何在您的計算機中移動、創建目錄和文件,以及如何刪除它們。
  • 了解您的服務器的安全外殼 (SSH) 訪問權限,並且至少熟悉創建安全密鑰。 您可以在我們關於安全文件傳輸協議 (SFTP) 的文章中找到更多相關信息。

這應該足以開始,但如果有其他需要您注意的地方,我們將在本文的其餘部分提到。

如何使用 Git 推送本地站點

您需要採取四個步驟來設置所有內容。 以下是我們將要介紹的內容:

  1. 為您的本地站點設置 Git 存儲庫。
  2. 設置遠程 Git 存儲庫。
  3. 告訴您的 Git 存儲庫需要將更改推送到哪裡。
  4. 添加遠程鏈接並實時推送您的更改。

這裡有很多事情要做,所以讓我們開始吧!

1. 為您的本地站點設置 Git 存儲庫

雖然有幾種方法可以設置 Git 存儲庫,但我們將使用命令行來執行此操作,因為它是最典型的方式。 打開終端窗口,首先導航到您站點的本地目錄:

使用終端和命令行導航到本地文件夾。

要為您的 Git 存儲庫設置必要的架構,請一次運行以下命令:

 git init git add .

第一個命令將創建您需要的目錄並將其隱藏,而第二個命令將您站點目錄中的所有文件添加到 Git 暫存區域 - 句點是“通配符”修飾符:

使用命令行初始化 Git 存儲庫並添加文件。

要查看暫存區域中有哪些文件,請使用git status命令:

運行 git status 以查看暫存的文件。

從這裡開始,您需要對這些更改進行初始提交以填充您的本地存儲庫。 您可以使用以下命令執行此操作:

git commit -m "Initial commit."

-m標誌告訴命令接下來是您的提交消息。 無論如何,您都需要為每次提交執行此操作,並且從一個地方執行此操作更簡單。

從這裡,您在計算機上設置了所有內容。 接下來是在遠程服務器上工作的時候了。

2. 在您站點的實時服務器上設置 Git 存儲庫

此處的過程類似於您的本地設置,但需要您使用 SSH 登錄到您的服務器。 使用它超出了本文的範圍,但我們可以將您指向 Tom McFarlin 的一篇文章,其中概述了您需要的步驟。 或者,您可以隨時詢問您的房東——他們應該可以毫無問題地向您展示這些憑據的位置。

通過命令行登錄服務器後,您需要導航到服務器的私有區域,以便外部用戶無法訪問您的 Git 存儲庫。 該目錄通常是/private/ ,儘管您會想向您的主機詢問這一點。

在此目錄中,您需要創建另一個目錄並導航到它:

 mkdir remoterepo.git cd remoterepo.git

只要該目錄使用.git擴展名,您就可以隨意調用它。 從這裡開始,在目錄中初始化一個新的 git repo,這次使用 –bare 標誌:

git --bare init

這會在沒有項目文件的情況下創建您需要的存儲庫,這是安全且推薦的。

3. 為您的存儲庫創建一個“掛鉤”並設置正確的文件權限

當您在服務器中時,您需要創建一個文件來告訴 Git 將更改推送到何處。 首先,運行nano hooks/post-receive command 。 這將打開一個名為 Nano 的命令行編輯器,並在正確的目錄中創建文件。

在此文件中,添加以下內容:

 #!/bin/sh GIT_WORK_TREE=/home/username/example.com git checkout -f

/home/user/example.com應該指向您站點的實時文件的確切位置。 username應該是您登錄 shell 時使用的用戶名, example.com應該是您的活動站點的域。 完成此操作後,保存您的更改。

這裡的最後一步是為此文件設置正確的文件權限。 您可以使用chmod +x hooks/post-receive命令執行此操作。 Change Mode (chmod) 命令是您從命令行設置文件權限的方式—— +x表示設置執行權限。

完成此操作後,鍵入exit以離開遠程終端。 從這裡,您需要返回終端內的本地 Git 存儲庫。

4. 將遠程鏈接添加到本地存儲庫並實時推送本地更改

在這裡,根據需要使用cd命令導航回本地 Git 存儲庫。 您需要添加到遠程服務器的鏈接,以便兩個 Git 存儲庫可以相互通信。 您將使用以下命令執行此操作:

git remote add origin ssh://[email protected]/~/remoterepo.git

Git 存儲庫的確切 URL 將取決於您在上一步中發現的位置。 當然,您的用戶和服務器憑據將替換此處的佔位符。

運行此命令,然後準備將本地更改推送到實時服務器。 以下命令將在不確認的情況下執行此操作,因此請確保您要執行此操作:

git push -u origin main

您將看到終端顯示確認摘要……

 Counting objects: 12, done. Delta compression using up to 2 threads. Compressing objects: 100% (2/1), done. Writing objects: 100% (13/13), 1200 bytes | 0 bytes/s, done. Total 12 (delta 0), reused 0 (delta 0)

......此時您可以檢查您的實時站點 - 更改應該存在且正確。

總之

在您的網站上工作是一項必要且經常是日常任務。 使用本地環境是執行此操作的典型方式,但有一個問題 - 您如何才能對您的實時站點進行無錯誤且最少大驚小怪的更改?

答案可能是使用 Git 將您所做的更改推送到實時服務器。 這允許您僅上傳您進行更改的文件,因此您的大部分安裝 - 和數據庫 - 保持原樣。 雖然您確實需要一些知識和工具來使一切正常工作,但這是一個工作流程的改變,可以看到您的本地站點開發的生產力和效率飛漲。

你認為你會使用 Git 來實時推送本地站點更改嗎? 在下面的評論部分讓我們知道您的想法!