後端技術考古題-開發工具 下篇(四)

閱讀時間約 4 分鐘

※ Git(四)

  1. 空的資料夾無法被加入 Git 進行版本控制,但這個資料夾如果又是很重要的資料夾,你會怎麼處理?

當空的目錄無法被加入 Git 進行版本控制時,有以下的做法可以解決

  • 在那個空目錄裡隨便放一個檔案就行了。
  • 在這個資料夾中添加一個名為 .gitkeep 的空檔案,讓 Git 能「感應」到這個目錄的存在。
touch important_folder/.gitkeep

再查看一下狀態:

git status
git add
git commit
  1. 在 Rails 專案中,config/database.yml 這個檔案裡有資料庫的設定、帳號密碼等資訊,在使用 Git 時,你通常會怎麼處理這類型內容比較敏感的檔案?

因為我們的 Rails 專案底下掌管三種環境(Production, Development, Test)的數據庫資訊都會放在 config/database.yml。因此在使用 Git 時,面對處理包含敏感資訊的檔案時,可以採取以下幾個方法來確保安全性:

  • 不要將敏感資訊提交到版本控制系統:避免將帳號、密碼等敏感資訊提交到版本控制系統中。
  • 使用環境變數:因為.env 檔案是一種用來存放環境變數的檔案格式,通常用於存放應用程式的設定資訊、API 金鑰、密碼等敏感資訊,可在應用程式中使用這些變數。所以使用 dotenv 或類似的套件可以使 .env 檔案中加載環境變數,而這些環境變數會被加載到 Node.js 的 process.env 中,我們可以在程式中直接存取這些變數。
  • 使用 .gitignore 檔案:在專案根目錄下建立一個 .gitignore 檔案,將 database.yml 或包含敏感資訊的檔案列入忽略清單,使其不會被 Git 追蹤。
  • 使用kubernetes管理:Kubernetes是一個開源的容器管理平台,提供了各種安全機制,包括身份驗證、授權、加密和網絡隔離,以確保應用程式和數據的安全性。
  • 使用加密的版本控制系統或加密檔案:在程式運行時解密。這樣可以保護敏感資訊不被未授權的人看到。
  1. 兩個 branch 各有五十個 commit 要接起來時,極有可能會出現大量的 conflict (衝突),這時你會選擇用 merge 還是 rebase 處理它?哪個可能比較方便(或比較少的衝突)?為什麼?

在 Git 裡有兩種方法可以用來整合兩個分支,分別是 merge 和 rebase。

※ 先了解git merge是什麼?

git merge 完成新分支後再透過 merge 回 master 或 develop 等主要分支,以便協作和管理代碼庫的開發流程。

在 merge 的時候會產生兩種情況

  1. 沒有產生衝突,進度直接往前快轉 (fast-forward)。

例如:

raw-image
  1. 產生衝突,先修復衝突先修復衝突。

例如:

raw-image

※ merge特點:

使用 merge時,每個合併點都會產生一個新的 merge commit,尤其是當出現大量衝突時,merge commit 的數量會多到讓歷史記錄變得複雜和難以理解。

※ 先了解git rebase是什麼?

使用情境:想要重新定義分支的基準點。

簡單來說,就是將分支上的 commit 逐項與 main 的內容進行合併。如果遇到合併衝突時,還是要先解決合併衝突。

※ rebase特點:

  • 合併時不會產生多餘的 commit,處理衝突時以 commit 為單位。
  • rebase 能夠提供一個更清晰的歷史記錄,缺點就是會修改 commit 的歷史紀錄。
  • 在 push 前先做 rebase,就能夠直接以 fast-forward 的方式合併,不需要再另外解衝突。

※ 結論:

個人在 push 到 remote 之前,使用 rebase 會比 merge 更方便,因為它可以讓歷史紀錄更為簡單好閱讀,並且在解決衝突時更容易管理。如果已經把紀錄 push 到 remote時,就只能使用merge,不能隨意修改他人的remote 的紀錄。

    全端網頁開發專業知識分享
    留言0
    查看全部
    發表第一個留言支持創作者!
    認識MongoDB
    閱讀時間約 7 分鐘
    認識MySQL
    閱讀時間約 8 分鐘
    你可能也想看
    前端開發和後端開發:哪一個更具挑戰性?在軟體開發領域中,Backend 和 Frontend 是兩個常被提及的術語。許多同學常常問我,到底是 Backend 比較難還是 Frontend 比較容易?
    Thumbnail
    avatar
    Janet
    2024-03-28
    後端硬體輸出-解說 製作檔案後續流程 -->底片-->曬版-->印刷機---印刷 -->出版----------->印刷機---印刷 最先接觸的是底片機,那時照相機還是膠捲時代,而報紙與周刊要印刷前都是輸出成透明黑字圖底片,再經由曬版功序進入印刷機。 出片機 以下廠牌為當時最大宗(中譯名),西元年是我
    Thumbnail
    avatar
    怡伶
    2023-08-29
    非本科轉職後端工程師的心路歷程菜雞成長故事 寫這一篇主因也是因為身邊朋友陸陸續續想往軟體業發展,或是想動手做做小專案,故才成就了這一篇心路歷程,這邊會介紹我的背景、學習管道跟我如何選擇第一個程式語言作為敲門磚跟學習時間,希望能幫助還在努力中或是預計要轉職的各位有一個方向或是參考?(雖然我依然還是一個小菜雞,請鞭小力)
    Thumbnail
    avatar
    DDDDD
    2023-08-18
    【好想工作室 — 後端 (backend Camp)培訓心得(五):這麼多東西,要怎麼學最有效率?】初學後端的人,可能對如何學習後端技術或語言會感到很困惑。 本篇文章提供了作者的幾種思路,幫助後端學員進行學習
    Thumbnail
    avatar
    結語JYu
    2023-04-01
    【好想工作室 — 後端 (backend Camp)培訓心得(四):我快崩潰了,怎麼辦?】在工作室培訓難免會陷入低潮的原因,本篇文章分析了陷入低潮的原因,及提供預防及解決方法。
    Thumbnail
    avatar
    結語JYu
    2023-04-01
    好想工作室 — 後端 (backend Camp)培訓心得(三):我好想進來好想這篇文章針對對好想工作室後端培訓(backend camp)有興趣的人,給他們一些申請建議。
    Thumbnail
    avatar
    結語JYu
    2023-04-01
    【好想工作室 — 後端 (backend Camp)培訓心得(二):backend camp 在幹嘛】本篇文章介紹了好想工作室後端培訓(backend camp)可能會遇到的各種狀況。
    Thumbnail
    avatar
    結語JYu
    2023-04-01
    【好想工作室 — 後端 (backend Camp)培訓心得(一):好想工作室簡介】簡單介紹好想工作室。 好想工作室是一個在台南的「資訊聚落」,提供免費的軟體工程師培訓,目前位於台南火車站旁。
    Thumbnail
    avatar
    結語JYu
    2023-04-01
    技術分享 | 如何成為後端工程師嗨 我是森妮 上週讓大家投票下一篇文章,沒想到後端工程師篇壓倒性勝利 前端工程師篇不知道大家喜不喜歡!陸續在IG有收到私訊有不少關於後端工程師的問題,我只要有時間都會回應,也歡迎來跟我聊聊天 【後端工程師】 [工作流程] 團隊中的PM、SA與客戶進行需求確認 [學習路徑] >基礎概念與工具
    Thumbnail
    avatar
    森妮後端工程師日常
    2022-09-07
    碳權商機|因應極端氣候與國際碳定價趨勢,蘇貞昌:積極修定《氣候法》,納 2050 淨零排放 隨著全球啟動「淨零競逐」(Race to Zero),以及國際碳定價趨勢越來越盛行,行政院長蘇貞昌 8 月要求環保署積極辦理「溫室氣體減量及管理法」修法作業,不僅要納入 2050 淨零排放的減排目標,也要加速台灣碳定價制度的擬定。 蘇貞昌:台灣深受極端氣候衝擊,氣候行動不應落於人後 今年台灣面臨嚴
    Thumbnail
    avatar
    本住人
    2021-09-11