[英]Binaries in Git
我從朋友處下載了一個.zip文件形式的項目。 我將其導入Eclipse,一切正常,構建過程順利進行。
現在,我要將其放入遠程GIT存儲庫中。
但是,有很多庫文件,IDE生成的文件和其他雜項。 我的工作區中的二進制文件。
我該怎么做? 我不想將工作空間中的所有內容都放入GIT(為了節省空間)。 我什至怎么知道應該受源代碼/修訂版控制的內容(即使某些可編輯文件也永遠不會更改)?
我的最終目標是讓其他人從GIT中檢出項目,將其導入到他們的IDE中,然后開始進行開發。 如果我不將二進制文件放入GIT,則它們的構建將明顯失敗。
如果您尚未意識到,則可能需要充分利用.gitignore
功能(請參閱此處 )。 您將要列出該文件中不應檢入或共享的所有內容,最有可能使用通配符表示永遠不會檢入的特定文件夾或文件類型。
至於確定要忽略的內容,這可能會有些棘手,但這是一個開始。 如果您可以執行某種make clean
命令make clean
的命令,則可以清除所有不必要的/生成的/已編譯的文件,這將使您對最小的文件集有所了解。
但是,您將要忽略的特定文件取決於您使用的是哪種語言,哪種編譯器,可能是哪種IDE(如果適用),以及是否添加了用於測試目的的所有文檔或數據文件,這些文件或數據文件都不打算共享。 。
通常,如果您的代碼打算與各種編譯器一起使用,則您可能希望忽略特定編譯器生成/編譯的任何內容。 使用多個IDE也是如此。 通常,您將希望忽略所有二進制文件,但是如果要具有一組“規范”構建或庫依賴項,則可以將其檢入。但是,您可能希望將它們放在特殊目錄中,因此您仍然可以根據需要忽略中間版本。
關於將二進制文件檢入git repos的一些討論(以及為什么通常認為二進制文件不好): 使用git和http://robinwinslow.co.uk/2013/06/11/dont-ever-commit- 管理大型二進制文件 二進制文件到git的/
將.gitignore
文件放在存儲庫的根目錄中。 在此文件中,您將指示不需檢入的文件模式。(例如,生成輸出或用戶特定的文件。)
例如,在Visual Studio項目中,構建操作將創建bin
和obj
文件夾,因此此文件可能僅包含以下文本:
bin
obj
通配符也可以使用,因此要忽略.user
文件,我可能還包括:
bin
obj
*.user
可能存在一些示例,這些示例散布着更通用的.gitignore
文件,這些文件涵蓋了99%的情況。 例如,我從事的.NET開源項目具有以下內容:
# Build Folders (you can keep bin if you'd like, to store dlls and pdbs)
[Bb]in/
[Oo]bj/
# mstest test results
TestResults
## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
# User-specific files
*.suo
*.user
*.sln.docstates
# Build results
[Dd]ebug/
[Rr]elease/
x64/
*_i.c
*_p.c
*.ilk
*.meta
*.obj
*.pch
*.pdb
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.log
*.vspscc
*.vssscc
.builds
# Visual C++ cache files
ipch/
*.aps
*.ncb
*.opensdf
*.sdf
# Visual Studio profiler
*.psess
*.vsp
*.vspx
# Guidance Automation Toolkit
*.gpState
# ReSharper is a .NET coding add-in
_ReSharper*
# NCrunch
*.ncrunch*
.*crunch*.local.xml
# Installshield output folder
[Ee]xpress
# DocProject is a documentation generator add-in
DocProject/buildhelp/
DocProject/Help/*.HxT
DocProject/Help/*.HxC
DocProject/Help/*.hhc
DocProject/Help/*.hhk
DocProject/Help/*.hhp
DocProject/Help/Html2
DocProject/Help/html
# Click-Once directory
publish
# Publish Web Output
*.Publish.xml
# NuGet Packages Directory
packages
# Windows Azure Build Output
csx
*.build.csdef
# Windows Store app package directory
AppPackages/
# Others
[Bb]in
[Oo]bj
sql
TestResults
[Tt]est[Rr]esult*
*.Cache
ClientBin
[Ss]tyle[Cc]op.*
~$*
*.dbmdl
Generated_Code #added for RIA/Silverlight projects
# Backup & report files from converting an old project file to a newer
# Visual Studio version. Backup files are not needed, because we have git ;-)
_UpgradeReport_Files/
Backup*/
UpgradeLog*.XML
我想象瀏覽一些流行的GitHub存儲庫將產生其他此類示例。 當然,GitHub甚至包含示例庫 。 如您所見,您可以針對許多特定的事物並根據您的存儲庫/項目定制.gitignore
規則。 沒錯,您需要包含依賴庫,而不必包含構建輸出。 只要它們是可分別識別的,您就可以使用。
例如,可以將依賴庫放在名為lib
的文件夾中,然后將其顯式添加到git存儲庫中。 確實,一旦添加了文件,即使它在.gitignore
模式規則中也不會被忽略。 這些規則告訴git哪些文件不添加,但已經添加的文件繼續跟蹤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.