Tầm quan trọng của .gitignore trong teamwork
Sắp hết tuần rồi mà chưa thấy đề tài nào ngắn ngắn để viết thì hôm nay có việc phải setup một project đưa lên Github cho team checkout về code. Bỗng nhớ ra ngày xưa setup xong, checkout về toàn không build được '_' Hôm nay mạn phép giải quyết cái vấn đề "lâu lẩu lầu lâu" này . Bài này có thể sẽ ...
Sắp hết tuần rồi mà chưa thấy đề tài nào ngắn ngắn để viết thì hôm nay có việc phải setup một project đưa lên Github cho team checkout về code. Bỗng nhớ ra ngày xưa setup xong, checkout về toàn không build được '_' Hôm nay mạn phép giải quyết cái vấn đề "lâu lẩu lầu lâu" này . Bài này có thể sẽ hữu ích với các bạn newbie hoặc những đội teamwork lần đầu với git.
Git Ignore là gì???
Có thể hiểu đơn giản là thằng git sẽ bỏ qua file hoặc một tập các file trong project của chúng ta khi commit và push lên repository. Ví dụ như:
- Các file mà IDE tự sinh ra trong quá trình build project > Tránh tốn kém tài nguyên server lưu trữ project.
- Các file cấu hình đường dẫn của máy cá nhân > Gây ra việc không build được project khi checkout về ở các máy thành viên khác.
- Các file cần phải giữ kín nếu như repository của bạn đang để public.
- ...vân vân và mây mây
Git quản lý các file mà chúng ta muốn "ignore" bằng file .gitignore được đặt ở trong thư mục root project. Ta có thể add đường dẫn các file muốn bỏ qua vào trong .gitignore bằng lệnh command trên Git Bash được, nhưng chắc hẳn không ai muốn làm điều đó đâu
Tool tạo file .gitignore
gitignore.io là một tool vô cùng mạnh mẽ giúp ta sinh ra file .gitignore. Các file mà bạn cần (hoặc nhất định) phải bỏ qua khi muốn đưa project lên repository sẽ được tool tự động thêm vào file .gitignore dựa trên việc bạn đang sử dụng hệ điều hành nào, IDE nào, ngôn ngữ lập trình nào,...
Mọi người truy cập vào trang để tạo thử nhé: https://www.gitignore.io/
Dành cho anh em Android sử dụng Android Studio
Đây là nội dung file .gitignore mà mình đang sử dụng, mọi người tham khảo + đóng góp với nhé
# Created by https://www.gitignore.io ### Java ### *.class # Mobile Tools for Java (J2ME) .mtj.tmp/ # Package Files # *.jar *.war *.ear # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml hs_err_pid* ### Gradle ### .gradle build/ # Ignore Gradle GUI config gradle-app.setting # Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored) !gradle-wrapper.jar ### Android ### # Built application files *.apk *.ap_ # Files for the Dalvik VM *.dex # Java class files *.class # Generated files bin/ gen/ # Gradle files .gradle/ /*/build/ # Local configuration file (sdk path, etc) local.properties # Proguard folder generated by Eclipse proguard/ # Log Files *.log ### Android Patch ### gen-external-apklibs ### Intellij ### # Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm *.iml ## Directory-based project format: .idea/ # if you remove the above rule, at least ignore the following: # User-specific stuff: .idea/workspace.xml .idea/tasks.xml .idea/dictionaries # Sensitive or high-churn files: # .idea/dataSources.ids # .idea/dataSources.xml # .idea/sqlDataSources.xml # .idea/dynamic.xml # .idea/uiDesigner.xml # Gradle: # .idea/gradle.xml # .idea/libraries # For AndroidStudio .idea/**/*.xml !.idea/codeStyleSettings.xml !.idea/copyright/*.xml !.idea/fileColors.xml !.idea/encodings.xml !.idea/gradle.xml !.idea/runConfigurations/*.xml !.idea/inspectionProfiles/*.xml /.ideainspectionProfiles/profiles_settings.xml !.idea/scopes/*.xml /.ideascopes/scope_settings.xml !.idea/templateLanguages.xml !.idea/vcs.xml # Mongo Explorer plugin: # .idea/mongoSettings.xml ## File-based project format: *.ipr *.iws ## Plugin-specific files: # IntelliJ /out/ # mpeltonen/sbt-idea plugin .idea_modules/ # JIRA plugin atlassian-ide-plugin.xml # Crashlytics plugin (for Android Studio and IntelliJ) com_crashlytics_export_strings.xml crashlytics.properties crashlytics-build.properties