簡體   English   中英

使用版本控制編譯工作流程

[英]Compiling workflow with version control

到目前為止,我已經將版本控制用於基本的基於Web的項目,這些項目實際上沒有編譯階段。 我現在分叉了一個相對較大的項目,該項目遵循標准的“./configure; make; make install”模式。 我不確定這類項目的正確工作流程。

如何處理編譯過程中創建的所有文件?

  • 添加很多東西給.gitignore? 這很難,因為我沒有創建構建過程,也沒有真正理解所創建的所有內容。
  • 在每個構建的其他地方簽出項目? 這似乎是一種痛苦,因為我經常每隔幾分鍾建立一次。
  • 只是確保永遠不要添加我不知道的東西,即永遠不要做git add . 如果是這樣,我該如何清理呢?

顯然這是每個處理已編譯代碼的人,所以我確信有一個可接受的模式,我還不熟悉它。

我同意ChrisF,不要將構建生成的二進制文件存儲在您的存儲庫中。 你的目標應該是擁有一個漂亮的.gitignore文件,以便在任何時候運行git status都不會顯示“未跟蹤的文件”。 這意味着git要么忽略所有文件,要么跟蹤所有文件。

我用來構建我的.gitignore的一個過程是這樣的:

  1. 添加並提交所有源項目(在構建任何內容之前)

    cd project

    git add .

    git commit -m'initial import'

  2. 添加將被忽略的簡單文件模式.gitignore ; 這包括* .o,* .so等。

    echo '*.o' > .gitignore

    echo '*.so' >> .gitignore

  3. 然后我運行構建。

    make

  4. 然后我跑了

    git ls-files -o >> .gitignore

    這將獲取您未使用glob模式指定的任何未完成文件。

-Bart

要清理工作目錄,可以使用git clean 除非您指定-f (強制)標志,否則默認情況下不會造成任何傷害。

命令行git clean -xfd將刪除工作目錄中的所有內容,而不是版本控制中的內容。

簡單的策略是將make輸出存儲在另一個目錄中,例如build,然后忽略該目錄。 您可以像這樣配置它:

mkdir build && cd build && ../configure

您不應將中間或輸出文件置於源代碼管理之下。 如果你這樣做,你必須檢查它們,以便在每次編譯和構建解決方案時使文件可寫。

您沒有說出您正在使用的IDE(如果有) - 請檢查它是否可以將項目添加到源代碼管理中。 如果它可以使用此選項,因為它只會添加絕對需要的那些文件。

暫無
暫無

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

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