[英]Compiling workflow with version control
到目前為止,我已經將版本控制用於基本的基於Web的項目,這些項目實際上沒有編譯階段。 我現在分叉了一個相對較大的項目,該項目遵循標准的“./configure; make; make install”模式。 我不確定這類項目的正確工作流程。
如何處理編譯過程中創建的所有文件?
git add .
如果是這樣,我該如何清理呢? 顯然這是每個處理已編譯代碼的人,所以我確信有一個可接受的模式,我還不熟悉它。
我同意ChrisF,不要將構建生成的二進制文件存儲在您的存儲庫中。 你的目標應該是擁有一個漂亮的.gitignore文件,以便在任何時候運行git status
都不會顯示“未跟蹤的文件”。 這意味着git要么忽略所有文件,要么跟蹤所有文件。
我用來構建我的.gitignore的一個過程是這樣的:
添加並提交所有源項目(在構建任何內容之前)
cd project
git add .
git commit -m'initial import'
添加將被忽略的簡單文件模式.gitignore ; 這包括* .o,* .so等。
echo '*.o' > .gitignore
echo '*.so' >> .gitignore
然后我運行構建。
make
然后我跑了
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.