07/09/2018, 15:37

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 :sweat_smile:. 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 :smirk:

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é :two_men_holding_hands:

# 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
0