This commit is contained in:
Luca Canali 2023-05-11 10:50:39 -07:00 committed by GitHub
commit ca72650cf4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
275 changed files with 4665 additions and 206 deletions

4
.gitignore vendored
View file

@ -2,3 +2,7 @@
/cache/
/dependencies/
/build/
*~
*.org
#*#
*.mo

View file

@ -75,6 +75,31 @@ A level can consist of multiple repositories. To have more than one, you can use
At this stage, we're still exploring ourselves which kind of levels would be fun! So feel free to try new things: basic introductions with a little story? Really hard puzzles? Levels where you have to find information? Levels where you need to fix a problem? Levels with three remotes?
## Add localizations
1. Add the localization text into the section "description" in the file ./resource/cards.json
```
Example:
"description": {
"en_EN": "Drag this card into the empty space above to initialize the time machine!",
"it_IT": "Trascina questa carta nell'area vuota sopra per inizializzare la macchina del tempo",
"es_ES": "Arrastre esta tarjeta al área en blanco de arriba para inicializar la máquina del tiempo"
}
```
2. Add, into the directory **levels**, the directory with the levels do you want to adding (es. ./levels/fr_FR/LIVELLI )
3. Add, the localization into the dictionary game.langs (es. `var langs = {0: "en_EN", 1: "it_IT", 2: "es_ES"}` the first and default localization it must be en_EN
4. Add column of specific locale and relative traductions for avery keys in the file ./resource/localization.csv
```
Example:
keys,en,it,es
LEVELS,Levels,Livelli,niveles
QUIT,Quit,Esci,Salir
BACK,Back,Indietro,Espalda
```
If one or more localizations in the descriptions of cards are missing and levels require that card, the game crashes!
## Contribute code!
To open the game in the [Godot editor](https://godotengine.org), run `godot project.godot`. You can then run the game using *F5*.

View file

@ -28,6 +28,7 @@ process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true

View file

@ -28,6 +28,7 @@ process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true

View file

@ -28,6 +28,7 @@ process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true

View file

@ -28,6 +28,7 @@ process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true

View file

@ -28,6 +28,7 @@ process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true

View file

@ -28,6 +28,7 @@ process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true

View file

@ -28,6 +28,7 @@ process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true

View file

@ -28,6 +28,7 @@ process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true

View file

@ -28,6 +28,7 @@ process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true

View file

@ -28,6 +28,7 @@ process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true

View file

@ -28,6 +28,7 @@ process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true

View file

@ -28,6 +28,7 @@ process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true

View file

@ -28,6 +28,7 @@ process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true

View file

@ -28,6 +28,7 @@ process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true

View file

@ -28,6 +28,7 @@ process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true

View file

@ -28,6 +28,7 @@ process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true

View file

@ -28,6 +28,7 @@ process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true

View file

@ -28,6 +28,7 @@ process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true

View file

@ -28,6 +28,7 @@ process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true

View file

@ -28,6 +28,7 @@ process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true

View file

@ -28,6 +28,7 @@ process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true

View file

@ -28,6 +28,7 @@ process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true

View file

@ -28,6 +28,7 @@ process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true

View file

@ -28,6 +28,7 @@ process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true

View file

@ -28,6 +28,7 @@ process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true

View file

@ -28,6 +28,7 @@ process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true

View file

@ -28,6 +28,7 @@ process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true

View file

@ -28,6 +28,7 @@ process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true

View file

@ -28,6 +28,7 @@ process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true

View file

@ -28,6 +28,7 @@ process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true

View file

@ -28,6 +28,7 @@ process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true

View file

@ -28,6 +28,7 @@ process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true

View file

@ -28,6 +28,7 @@ process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true

View file

@ -28,6 +28,7 @@ process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true

View file

@ -7,22 +7,21 @@ custom_features=""
export_filter="all_resources"
include_filter="levels/*, scripts/*, resources/*, cards/*"
exclude_filter="dependencies/*, cache/*"
export_path=""
patch_list=PoolStringArray( )
export_path="../../../Downloads/Oh My Git!.x86_64"
script_export_mode=1
script_encryption_key=""
[preset.0.options]
custom_template/debug=""
custom_template/release=""
binary_format/64_bits=true
binary_format/embed_pck=false
texture_format/bptc=false
texture_format/s3tc=true
texture_format/etc=false
texture_format/etc2=false
texture_format/no_bptc_fallbacks=true
binary_format/64_bits=true
binary_format/embed_pck=false
custom_template/release=""
custom_template/debug=""
[preset.1]
@ -34,7 +33,6 @@ export_filter="all_resources"
include_filter="levels/*, scripts/*, resources/*, cards/*"
exclude_filter="dependencies/*, cache/*"
export_path=""
patch_list=PoolStringArray( )
script_export_mode=1
script_encryption_key=""
@ -47,12 +45,54 @@ application/info=""
application/icon=""
application/identifier=""
application/signature=""
application/app_category="Games"
application/short_version="1.0"
application/version="1.0"
application/copyright=""
display/high_res=false
privacy/camera_usage_description=""
privacy/microphone_usage_description=""
privacy/camera_usage_description=""
privacy/location_usage_description=""
privacy/address_book_usage_description=""
privacy/calendar_usage_description=""
privacy/photos_library_usage_description=""
privacy/desktop_folder_usage_description=""
privacy/documents_folder_usage_description=""
privacy/downloads_folder_usage_description=""
privacy/network_volumes_usage_description=""
privacy/removable_volumes_usage_description=""
codesign/enable=true
codesign/identity=""
codesign/timestamp=true
codesign/hardened_runtime=true
codesign/replace_existing_signature=true
codesign/entitlements/custom_file=""
codesign/entitlements/allow_jit_code_execution=false
codesign/entitlements/allow_unsigned_executable_memory=false
codesign/entitlements/allow_dyld_environment_variables=false
codesign/entitlements/disable_library_validation=false
codesign/entitlements/audio_input=false
codesign/entitlements/camera=false
codesign/entitlements/location=false
codesign/entitlements/address_book=false
codesign/entitlements/calendars=false
codesign/entitlements/photos_library=false
codesign/entitlements/apple_events=false
codesign/entitlements/debugging=false
codesign/entitlements/app_sandbox/enabled=false
codesign/entitlements/app_sandbox/network_server=false
codesign/entitlements/app_sandbox/network_client=false
codesign/entitlements/app_sandbox/device_usb=false
codesign/entitlements/app_sandbox/device_bluetooth=false
codesign/entitlements/app_sandbox/files_downloads=0
codesign/entitlements/app_sandbox/files_pictures=0
codesign/entitlements/app_sandbox/files_music=0
codesign/entitlements/app_sandbox/files_movies=0
codesign/custom_options=PoolStringArray( )
notarization/enable=false
notarization/apple_id_name=""
notarization/apple_id_password=""
notarization/apple_team_id=""
texture_format/s3tc=true
texture_format/etc=false
texture_format/etc2=false
@ -66,23 +106,23 @@ custom_features=""
export_filter="all_resources"
include_filter="levels/*, scripts/*, resources/*, cards/*"
exclude_filter="dependencies/*, cache/*"
export_path=""
patch_list=PoolStringArray( )
export_path="../../../Downloads/Oh My Git!.exe"
script_export_mode=1
script_encryption_key=""
[preset.2.options]
custom_template/debug=""
custom_template/release=""
binary_format/64_bits=true
binary_format/embed_pck=false
texture_format/bptc=false
texture_format/s3tc=true
texture_format/etc=false
texture_format/etc2=false
texture_format/no_bptc_fallbacks=true
binary_format/64_bits=true
binary_format/embed_pck=false
custom_template/release=""
custom_template/debug=""
codesign/enable=false
codesign/identity_type=0
codesign/identity=""
codesign/password=""
codesign/timestamp=true
@ -90,6 +130,7 @@ codesign/timestamp_server_url=""
codesign/digest_algorithm=1
codesign/description=""
codesign/custom_options=PoolStringArray( )
application/modify_resources=true
application/icon=""
application/file_version=""
application/product_version=""
@ -109,15 +150,233 @@ export_filter="all_resources"
include_filter="levels/*, scripts/*, resources/*"
exclude_filter="dependencies/*, cache/*"
export_path=""
patch_list=PoolStringArray( )
script_export_mode=1
script_encryption_key=""
[preset.3.options]
custom_template/debug=""
custom_template/release=""
variant/export_type=0
vram_texture_compression/for_desktop=true
vram_texture_compression/for_mobile=false
html/export_icon=true
html/custom_html_shell=""
html/head_include=""
custom_template/release=""
html/canvas_resize_policy=2
html/focus_canvas_on_start=true
html/experimental_virtual_keyboard=false
progressive_web_app/enabled=false
progressive_web_app/offline_page=""
progressive_web_app/display=1
progressive_web_app/orientation=0
progressive_web_app/icon_144x144=""
progressive_web_app/icon_180x180=""
progressive_web_app/icon_512x512=""
progressive_web_app/background_color=Color( 0, 0, 0, 1 )
[preset.4]
name="Android"
platform="Android"
runnable=true
custom_features=""
export_filter="all_resources"
include_filter=""
exclude_filter=""
export_path=""
script_export_mode=1
script_encryption_key=""
[preset.4.options]
custom_template/debug=""
custom_template/release=""
custom_build/use_custom_build=false
custom_build/export_format=0
custom_build/min_sdk=""
custom_build/target_sdk=""
architectures/armeabi-v7a=true
architectures/arm64-v8a=true
architectures/x86=false
architectures/x86_64=false
keystore/debug=""
keystore/debug_user=""
keystore/debug_password=""
keystore/release=""
keystore/release_user=""
keystore/release_password=""
one_click_deploy/clear_previous_install=false
version/code=1
version/name="1.0"
package/unique_name="org.godotengine.$genname"
package/name=""
package/signed=true
package/classify_as_game=true
package/retain_data_on_uninstall=false
package/exclude_from_recents=false
launcher_icons/main_192x192=""
launcher_icons/adaptive_foreground_432x432=""
launcher_icons/adaptive_background_432x432=""
graphics/opengl_debug=false
xr_features/xr_mode=0
xr_features/hand_tracking=0
xr_features/hand_tracking_frequency=0
xr_features/passthrough=0
screen/immersive_mode=true
screen/support_small=true
screen/support_normal=true
screen/support_large=true
screen/support_xlarge=true
user_data_backup/allow=false
command_line/extra_args=""
apk_expansion/enable=false
apk_expansion/SALT=""
apk_expansion/public_key=""
permissions/custom_permissions=PoolStringArray( )
permissions/access_checkin_properties=false
permissions/access_coarse_location=false
permissions/access_fine_location=false
permissions/access_location_extra_commands=false
permissions/access_mock_location=false
permissions/access_network_state=false
permissions/access_surface_flinger=false
permissions/access_wifi_state=false
permissions/account_manager=false
permissions/add_voicemail=false
permissions/authenticate_accounts=false
permissions/battery_stats=false
permissions/bind_accessibility_service=false
permissions/bind_appwidget=false
permissions/bind_device_admin=false
permissions/bind_input_method=false
permissions/bind_nfc_service=false
permissions/bind_notification_listener_service=false
permissions/bind_print_service=false
permissions/bind_remoteviews=false
permissions/bind_text_service=false
permissions/bind_vpn_service=false
permissions/bind_wallpaper=false
permissions/bluetooth=false
permissions/bluetooth_admin=false
permissions/bluetooth_privileged=false
permissions/brick=false
permissions/broadcast_package_removed=false
permissions/broadcast_sms=false
permissions/broadcast_sticky=false
permissions/broadcast_wap_push=false
permissions/call_phone=false
permissions/call_privileged=false
permissions/camera=false
permissions/capture_audio_output=false
permissions/capture_secure_video_output=false
permissions/capture_video_output=false
permissions/change_component_enabled_state=false
permissions/change_configuration=false
permissions/change_network_state=false
permissions/change_wifi_multicast_state=false
permissions/change_wifi_state=false
permissions/clear_app_cache=false
permissions/clear_app_user_data=false
permissions/control_location_updates=false
permissions/delete_cache_files=false
permissions/delete_packages=false
permissions/device_power=false
permissions/diagnostic=false
permissions/disable_keyguard=false
permissions/dump=false
permissions/expand_status_bar=false
permissions/factory_test=false
permissions/flashlight=false
permissions/force_back=false
permissions/get_accounts=false
permissions/get_package_size=false
permissions/get_tasks=false
permissions/get_top_activity_info=false
permissions/global_search=false
permissions/hardware_test=false
permissions/inject_events=false
permissions/install_location_provider=false
permissions/install_packages=false
permissions/install_shortcut=false
permissions/internal_system_window=false
permissions/internet=false
permissions/kill_background_processes=false
permissions/location_hardware=false
permissions/manage_accounts=false
permissions/manage_app_tokens=false
permissions/manage_documents=false
permissions/manage_external_storage=false
permissions/master_clear=false
permissions/media_content_control=false
permissions/modify_audio_settings=false
permissions/modify_phone_state=false
permissions/mount_format_filesystems=false
permissions/mount_unmount_filesystems=false
permissions/nfc=false
permissions/persistent_activity=false
permissions/process_outgoing_calls=false
permissions/read_calendar=false
permissions/read_call_log=false
permissions/read_contacts=false
permissions/read_external_storage=false
permissions/read_frame_buffer=false
permissions/read_history_bookmarks=false
permissions/read_input_state=false
permissions/read_logs=false
permissions/read_phone_state=false
permissions/read_profile=false
permissions/read_sms=false
permissions/read_social_stream=false
permissions/read_sync_settings=false
permissions/read_sync_stats=false
permissions/read_user_dictionary=false
permissions/reboot=false
permissions/receive_boot_completed=false
permissions/receive_mms=false
permissions/receive_sms=false
permissions/receive_wap_push=false
permissions/record_audio=false
permissions/reorder_tasks=false
permissions/restart_packages=false
permissions/send_respond_via_message=false
permissions/send_sms=false
permissions/set_activity_watcher=false
permissions/set_alarm=false
permissions/set_always_finish=false
permissions/set_animation_scale=false
permissions/set_debug_app=false
permissions/set_orientation=false
permissions/set_pointer_speed=false
permissions/set_preferred_applications=false
permissions/set_process_limit=false
permissions/set_time=false
permissions/set_time_zone=false
permissions/set_wallpaper=false
permissions/set_wallpaper_hints=false
permissions/signal_persistent_processes=false
permissions/status_bar=false
permissions/subscribed_feeds_read=false
permissions/subscribed_feeds_write=false
permissions/system_alert_window=false
permissions/transmit_ir=false
permissions/uninstall_shortcut=false
permissions/update_device_stats=false
permissions/use_credentials=false
permissions/use_sip=false
permissions/vibrate=false
permissions/wake_lock=false
permissions/write_apn_settings=false
permissions/write_calendar=false
permissions/write_call_log=false
permissions/write_contacts=false
permissions/write_external_storage=false
permissions/write_gservices=false
permissions/write_history_bookmarks=false
permissions/write_profile=false
permissions/write_secure_settings=false
permissions/write_settings=false
permissions/write_sms=false
permissions/write_social_stream=false
permissions/write_sync_settings=false
permissions/write_user_dictionary=false

View file

@ -28,6 +28,7 @@ process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true

View file

@ -28,6 +28,7 @@ process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true

View file

@ -28,6 +28,7 @@ process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true

View file

@ -28,6 +28,7 @@ process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true

View file

@ -28,6 +28,7 @@ process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true

View file

@ -28,6 +28,7 @@ process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true

View file

@ -28,6 +28,7 @@ process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true

View file

@ -28,6 +28,7 @@ process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true

View file

@ -28,6 +28,7 @@ process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true

View file

@ -28,6 +28,7 @@ process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true

View file

@ -28,6 +28,7 @@ process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true

BIN
images/settings_32x32.png Normal file

Binary file not shown.

After

(image error) Size: 1,022 B

View file

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/settings_32x32.png-1ec947b33410cb1f2231e893c0d26b43.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://images/settings_32x32.png"
dest_files=[ "res://.import/settings_32x32.png-1ec947b33410cb1f2231e893c0d26b43.stex" ]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=true
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0

View file

@ -28,6 +28,7 @@ process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true

View file

@ -28,6 +28,7 @@ process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true

View file

@ -9,7 +9,7 @@ Oh no! You have lost your key at some point during the day!
Sure, you could look at every single commit in an attempt to find it - but there's a better way: your time machine has a built-in way to find the point in time where things went wrong quickly!
First, play the "bisect start" card. Then, go to a commit where you don't have the key, and play the "bisect bad" card. Likewise, go to a commit early on where you have the key *in your pocket*, and play the "bisect good" card.
First, play the "bisect start" card. Then, go to a commit where you don't have the key, and play the "bisect bad" card. Likewise, go to a commit early on where you have the key *in your pocket*, and play the "bisect good card".
After you've found the last good commit, reset the main branch to it. What happened to the key after you lost it?

43
levels/bisect/it/bisect Normal file
View file

@ -0,0 +1,43 @@
title = Strada di mattoni gialli
cards = checkout commit-auto reset-hard bisect-start bisect-good bisect-bad
[description]
(Perpiacere rimpicciolisci un pochino usando la rotella del mouse! :D)
Oh no! Hai perso la tua chiave da qualche parte durante il giorno!
Sicuro, certo potresti guardare in ogni singolo commit nella speranza di trovarlo - ma c'è un modo migliore: la tua macchina del tempo ha un modo integrato per trovare velocemente il punto nel tempo dove le cose sono andate male!
Per prima cosa, gioca la carta "bisec start". Quindi, vai ad un commit in cui non hai la chiave e gioca la carta "bisect bad". Allo stesso modo vai velocemente in un commit dove hai la chiave *in tascca* e gioca la carta "bisect goofìd".
Dopo aver trovato l'ultimo commit valido reimposta la branch principale su di esso. Cosa è successo alla chiave dopo che l'hai persa?
[setup]
echo "Hai ancora la tua chiave." > you
for i in {1..30}; do
if test $i -eq 12; then
echo "La tua tasca è vuota." > you
echo "E' per terra." > key
fi
if test $i -eq 13; then
echo "Tiene una chiave nel becco." > bird
rm key
fi
if test $i -eq 14; then
rm bird
fi
git add .
git commit --allow-empty -m "$i"
done
[win]
# Trova l'ultimo commit buono
test "$(git log --pretty=%s main | head -1)" -eq 11
[congrats]
Molto bene! :) L'unico problema è che adesso devi tornare a casa camminando, dinuovo...

View file

@ -0,0 +1,44 @@
title = Creare ramificazioni
cards = checkout commit-auto branch branch-delete reset-hard
[description]
Vieni invitato a due feste! In una di queste, suona il tuo gruppo preferito e l'altra è la festa del tuo miglio amico. Dove andrai? Non preoccuparti - come agente del viaggio nel tempo, puoi andare ad entrambe le feste!
Per rendere più facile dire quale sia la linea temporale, puoi creare portali temporali! (Chiamiamoli "rami-branchs")
[cli]
Anche viaggiare tra differenti rami temporali è davvero facile usando la linea di comando! Hai un ramo chiamato "birthday", puoi digitare `git checkout birthday` per arrivarci.
[setup]
echo "Incarta il regalo di compleanno e prendi il biglietto del concerto." > you
git add .
git commit -m "Preparazione serale"
echo "Vai alla festa di compleanno!" >> you
git add .
git commit -m "Vai al compleanno"
git checkout HEAD~1
echo "Vai al concerto!" > you
git add .
git commit -m "Vai al concerto"
git checkout HEAD~1
git branch -D main
[win]
# Crea un ramo chiamato 'birthday' questo punta alla linea temporale del compleanno
git show birthday | grep 'birthday'
# Crea un ramo chiamato 'concert' questo punta alla linea temporale del compleanno
git show concert | grep 'concert'
[congrats]
Adesso tu puoi viaggiare tra quie rami facilmente (usando `git checkout`) - Prova!
Il tuo amico è felice che tu sia andato alla sua festa di compleanno e anche tu sei contento del biglietto del concerto firmato. Yay!

View file

@ -0,0 +1,47 @@
title = Cancellare rami
cards = checkout commit-auto reset-hard branch-delete
[description]
La vita è piena di pericolim, vero? Anche quando cammini a scuola2, sembra che ci siano molti rischi!
Questo Lunedì è particolarmente brutto.Sei arrivato a scuola ma ci sono delle line temporali che tu non vuoi tenere in giro
[setup]
echo Esci di casa e ti incammini verso la scuola. > you
git add .
git commit -m "Buon giorno!"
echo Cammini nel lato destro della strada. >> you
git commit -am "Lato destro"
echo Salti in un tombino nel marciapiede e arrivi in orario a scuola. >> you
git commit -am "Salto"
git checkout HEAD^ -b friend
echo "All'improvviso cadi in una pozzanghera puzzolente e vieni mangiato da degli alligatori." >> you
git commit -am "Un nuovo amico"
git checkout HEAD~2 -b music
echo Cammini nel lato sinistro della strada. >> you
git commit -am "Lato sinistro"
echo Siccome sei in ritardo, inizi a corre ma qualcuno lanci un pianoforte dalla finestra e ti schiacci. >> you
git commit -am "Bei suoni"
git checkout HEAD^ -b ice-cream
echo Non sei preoccupato e cammini lentamente. Prendi anche un gelato per strada. Arrivi troppo tardi a scuola, il tuo insegnante è arrabbiato e vieni espulso da scuola. >> you
git commit -am "Yum"
git branch -M main leap
git checkout leap^^
[win]
# Trova i rami cattivi e cancellali. Tieni solo il migliore.
test "$(git show-ref --heads | cut -f2 -d' ')" = "$(echo refs/heads/leap)"
[congrats]
Ripensandoci preferisci la linea temporale del gelato? :)

View file

@ -0,0 +1,43 @@
title = Muoversi attraverso il tempo
cards = checkout commit-auto
[description]
La scatole gialle sono un punto fisso nel tempo, possiamo chiamarli "commits"! Puoi viaggiare tra loro usando la carta "checkout"! (Provala!)
Puoi scoprire cosa è successo qui? Quindi, durante ultimo commit, modifica i files per risolvere il problema ed invia un nuovo commit!
[cli]
Guarda uno specifico commit, digita `git checkout` uno spazio e premi il tasto destro sopra il commit che vuoi!
Questo inserirà l'identificatore unico del commit!
[setup]
echo "Questo salvadanaio appartiene alla sorella maggiore.
Contiene 10 monete." > piggy_bank
git add .
git commit -m "L'inizio"
echo "Una giovane donna con capelli, ricci, marroni." > little_sister
git add .
git commit -m "La sorella piccola è arrivata"
echo "Ha 10 monete." >> little_sister
echo "Questo salvadanaio appartiene alla sorella maggiore.
E' vuoto." > piggy_bank
git add .
git commit -m "La sorella piccola ha fatto qualcosa"
git checkout HEAD^^
git branch -df main
[win]
# Ripristina il salvadanaio della sorella.
{ git show HEAD:piggy_bank | grep "10 monete"; } && { git show HEAD:little_sister | grep -v "10 monete"; } && { git rev-parse HEAD^^^; }
[congrats]
Stupendo! Adesso hai preso famiglirità con la macchina del tempo, vediamo situazioni più complicate...

65
levels/branches/it/fork Normal file
View file

@ -0,0 +1,65 @@
title = Crea universi paralleli
cards = checkout commit-auto
[description]
Sai che creare line temporali parallele è perfettamente legale e sicuro? Vero!
Puoi scoprire qundo le cose sono andate male in questo zoo? Poi torna all'ultimo momento buono e crea un universo parallelo dove sono tutti felicy!
[cli]
L'animale blue rappresenta un concetto conosciuto come "HEAD pointer" in Git: Ti mostra qual'è il commit attuale.
Ecco un simpatico trucchetto andare al commit precedente:
git checkout HEAD^
Puoi anche andare indietro di 2 commit digitando, pre esempio:
git checkout HEAD~2
[setup]
mkdir cage
echo "Sembra molto affamato." > cage/lion
echo "Un ragazzino..
Ama veramente i gatti!" > child
git add .
git commit -m "L'inizio"
echo "Tiene in mano un leccalecca." >> child
git commit -am "Il ragazzo compra qualcosa"
mv child cage
git add .
git commit -m "Il bambino si arrampica da qualche parte"
git rm cage/child
echo "E' felice. :)" > cage/lion
git add .
git commit -m "Oh no"
echo "Sta dormendo." > cage/lion
git add .
git commit -m "Ora del pisolino!"
git checkout --detach
git branch -d main
[win]
# Assicurati che il ragazzino sia felice.
git ls-tree --name-only -r HEAD | grep child
# Assicurati che il leone abbia qualcosa da mangiare.
git show HEAD:cage/lion | grep -v "molto affamato"
[congrats]
Whew, ottimo lavoro! Questo sembra un risultato molto migliore.
Sentiti libero di aggiungere altre line temporali parallele o allungarle.
Se sei pronto, la prossima missione ci sta aspettando...

48
levels/branches/it/grow Normal file
View file

@ -0,0 +1,48 @@
title = I rami crescono con tè!
cards = checkout commit-auto branch branch-delete reset-hard
[description]
Nota che ci sono due opzioni per "viaggire fino alla fine della linea temporale":
Primo, puoi direttamente viaggiare al commit, come abbiamo fatto prima.
e secondo, puoi viaggiare fino all'etichetta del ramo. In questo caso, quando crei un nuovo commit, il ramo cresce con te e punta ancora alla fine della linea temporale!
[cli]
Per viaggire in un ramo, digita `git checkout name_of_the_branch`.
e per viaggiare all'ultimo commit, digita `git checkout --detach name_of_the_branch`.
[setup]
echo "In carti il regalo di complanno e prendi il biglietto del concerto." > you
git add .
git commit -m "Preparazioni della sera"
echo "Vai alla festa di compleanno!" >> you
git add .
git commit -m "Vai alla festa di compleanno"
git branch birthday
git checkout HEAD~1
echo "Vai al concerto!" > you
git add .
git commit -m "Vai al concerto"
git branch concert
git checkout HEAD~1
git branch -D main
[win]
# Viaggi direttamente all'ultimo commit giallo della line temporale del compleanno, fai un cambiamento per te e crea un commit
for commit in $(git cat-file --batch-check='%(objectname) %(objecttype)' --batch-all-objects | grep 'commit$' | cut -f1 -d' '); do
if test $(git rev-parse $commit^) = $(git rev-parse birthday); then
return 0
fi
done
return 1
# Viaggi fino al ramo, blue, del concerto, fai un cambiamento ed un commit.
git show concert^ | grep "Vai al concerto"

View file

@ -0,0 +1,89 @@
title = Muovere i rami
cards = checkout commit-auto merge reset-hard
[description]
Uno dei tuoi colleghi ha fatto un casino qui e ha messo le branches nelle line temporali sbagliate!
Potresti cancellare e ricreare queste branches - ma puoi anche muoverle direttamente in un differente commit usando:
git checkout
nel nome della branch e poi usare
git reset --hard
nel commit dove vuoi che la branch vada.
La ciambella è nella branch giusto ma la linea temporale è incompleta - fai *mangiare* la ciambella a quella branch!
[setup]
echo "Tu non hai una baguette.
Non hai un caffe.
Non hai una ciambella." > you
git add .
git commit -m "L'inizio"
git checkout -b coffee
echo "Tu hai una baguette.
Non hai un caffe.
Non hai una ciambella." > you
git add .
git commit -m "Compri una ciambella"
echo "Mangi una baguette.
Non hai un caffe.
Non hai una ciambella." > you
git add .
git commit -m "Mangi una baguette"
git checkout -b baguette main
echo "Non hai una ciambella.
Hai un caffe.
Non hai una ciambella." > you
git add .
git commit -m "Compri un pò di caffe"
echo "Non hai una baguette.
Hai bevuto caffe.
Non hai una ciambella." > you
git add .
git commit -m "Bevi il caffe"
git checkout -b donut main
echo "Non hai una baguette.
Non hai caffe.
Hai una ciambella." > you
git add .
git commit -m "Compri una ciambella"
git checkout --detach main
[win]
# Mangi una baguette nella branch delle baguette?
git show baguette:you | grep "Mangi.*baguette"
# Bevi un caffe nella branch del caffe?
git show coffee:you | grep "Bevi.*coffe"
# Mangi una ciambella nella branch delle ciambelle?
git show donut:you | grep "Mangi.*ciambella"
[actions]
test "$(git rev-parse HEAD^)" = "$(git rev-parse donut)" && hint "Ricordati di controllare l'etichetta branch blue quando vuoi che cresca con la linea temporale."

View file

@ -0,0 +1,86 @@
title = Rebasing
cards = checkout commit-auto reset-hard rebase
[description]
Okay - Salta vuori che risparmiare tempo al mattino utilizzando universi paralleli è contro il regolamento dell'International Time Travel Association. Dovrai svolgere i tuoi compiti in sequenza dopotutto.
Vedi la carta "rebase"? Quando la trascini su di un commit, copierà dopo di esso tutti gli eventi della linea temporale su cui ti trovi! In questo modo crei una linea temporale chiara e pulita dove visiti tutti e tre i negozzi.
Nuovamente, vogliamo rendere questa la nostra realtà di base - il ramo "main" dovrebbe puntare a quella linea temporale!
[setup]
echo "Non hai una baguette.
Non hai caffe.
Non hai una ciambella." > you
git add .
git commit -m "L'inizio"
git checkout -b baguette main
echo "Hai una baguette.
Non hai caffe.
Non hai una ciambella." > you
git add .
git commit -m "Compri una baguette"
echo "Mangi una baguette.
Non hai caffe.
Non hai una ciambella." > you
git add .
git commit -m "Mangi la baguette"
git checkout -b coffee main
echo "Non hai una baguette.
Hai del caffe.
Non hai una ciambella." > you
git add .
git commit -m "Compri un pò di caffe"
echo "Non hai una baguette.
Hai bevuto caffe.
Non hai una ciambella." > you
git add .
git commit -m "Bevi il caffe"
git checkout -b donut main
echo "Non hai una baguette
Non hai caffe.
Hai una ciamebella." > you
git add .
git commit -m "Compri una ciambella"
echo "Non hai una baguette.
Non hai caffe.
Mangi una ciambella." > you
git add .
git commit -m "Mangi la ciambella"
git checkout --detach main
[win]
# Ordina le tre ramificazioni in una e muovi il riferimento al ramo principale
{ git show main:you | grep "Mangi.*baguette"; } && { git show main:you | grep "bevuto.*caffe"; } && { git show main:you | grep "Mangi.*ciambella"; } && { test "$(git log main --oneline | wc -l)" -eq 7; }
[congrats]
Nota come gli altri commit e linee temporali siano ancora li - se qualcosa va storto, puoi ancora tornare in dietro.
E' davvero difficile *distruggere* le cose con la tua macchina del tempo.

View file

@ -0,0 +1,77 @@
title = Riordinare gli eventi
cards = checkout commit-auto reset-hard rebase-interactive cherry-pick
[description]
Oops, guarda c'è qualcosa di incasinato qui. Puoi rimettere gli eventi nel corretto ordine?
Ci sono due modi per farlo: Puoi trascinare la carta "interactive rebase" sul commit precedente a quello che vuoi cambiare, poi riordinare le linee nel file che si apre e salvarlo.
Oppure puoi reimpostare il tag principale al primo commit, quindi selezionare i singoli commit (cherry-pick) nell'ordine desiderato. Hai carte per entrambe i modi!
[setup]
echo "Ti sei appena svegliato.
Non indossi biancheria intima.
Non indossi pantaloni.
Non indossi la maglia.
Non indossi le scarpe." > you
git add .
git commit -m "L'inizio"
echo "Ti sei appena svegliato.
Non indossi biancheria intima.
Non indossi pantaloni.
Non indossi la maglia.
Indossi le scarpe." > you
git commit -am "Metti le scarpe"
echo "Ti sei appena svegliato.
Non indossi biancheria intima.
Indossi pantaloni.
Non indossi la maglia.
Indossi le scarpe." > you
git commit -am "Metti i pantaloni"
echo "Ti sei appena svegliato.
Indossi la biancheria intima.
Indossi pantaloni.
Non indossi la maglia.
Indossi le scarpe." > you
git commit -am "Metti biancheria intima"
echo "Ti sei appena svegliato.
Indossi biancheria intima.
Indossi pantaloni.
Indossi la maglia.
Indossi le scarpe." > you
git commit -am "Ti metti la maglia"
[win]
# Riordina i commit per vestirti nel modo corretto
{ git log main --oneline | perl -0777 -ne'exit(1) if not /scarpe[\s\S]*pantaloni[\s\S]*biancheria/'; } && { test "$(git log main --oneline | wc -l)" -eq 5; }
[congrats]
Sentiti libero di resettare il livello e provare l'altra strategia! Qual'è quella che preferisci?

31
levels/files/it/files-add Normal file
View file

@ -0,0 +1,31 @@
title = Arredatore di interni
cards = file-new file-delete
[description]
Ora che la tua stanza sembra in ordine, puoi iniziare a disfare le tue cose. Hai portato con te due mobili nuovi e con un sorriso luminoso,
vedi che i loro colori corrispondono al colore del tuo letto!
Costruisci i tuoi due mobili usando la carta touch.
Quindi dai il nome ai tuoi mobili - puoi sciegliere quello che tu vuoi.
Assicurati che i colori siano uguali! Puoi trovare il colore del letto nella descrizione.
Non dimenticare di aggiungere un colore e una descrizione anche ai tuoi nuovi mobile.
[setup]
echo Un accogliente letto giallo. > bed
[win]
# Aggiungi altri due mobili
NUM_FILES="$(ls | wc -l)"
test "$NUM_FILES" -ge 3
# Assicurati che i colori corrispondano a quelle del tuo letto
NUM_FILES="$(ls | wc -l)"
YELLOW_FILES="$(grep -li giallo * | wc -l)"
test "$NUM_FILES" -ge 2 && test "$YELLOW_FILES" = "$NUM_FILES"
[congrats]
Non ti senti già più a casa?

View file

@ -0,0 +1,36 @@
title = Coinquilini inaspettati
cards = file-delete
[description]
Il primo giorno alla Scuola del viaggio nel tempo sta per finire e tu ricevi le chiavi della tua stanza.
Eccitatissimo apri la porta giusto per vedere... ragnatele! Ragnatele ovunque!
Cava tutte le ragnatele che puoi trovare con la carta remove!
[cli]
Nella line di comando, puoi facilmente eliminare tutti i file che finiscono in "web" usando il comando:
rm *web
[setup]
echo Una piccola ragnatela è accanto alla tua finestra. > tiny_web
echo Una grande ragnatela attaccata sopra al tuo letto. > big_web
echo Un letto accogliente. > bed
echo Una ragnatela spessa è alla destra della tua porta. > thick_web
[win]
# Rimuovi tutte le ragnatele.
! ls | grep thick_web &&
! ls | grep big_web &&
! ls | grep tiny_web
# Ma assicurati di mantenere il tuo letto!
ls | grep bed
[congrats]
Guarda la tua stanza adesso è davvero ordinata ed accogliente! Il momento per disfare le valige!

38
levels/index/it/add Normal file
View file

@ -0,0 +1,38 @@
title = Updating files in the index
cards = add commit checkout
[description]
So you start working, and make changes to your files! Git lets you choose which of these changes you want to put in the next commit. This is like updating the index version of that file to the new version.
This allows you to have smaller commits, that describe better what you changed!
The command for this is the same - `git add`!
[setup]
echo a > a
echo b > b
echo c > c
git add .
git commit -m "Initial commit"
[win]
# Make changes to all files!
test "$(cat a)" != "a" &&
test "$(cat b)" != "b" &&
test "$(cat c)" != "c"
# Add only the changes of a and c, and make a commit! Finally, make a commit which captures the changes in b!
test "$(git show main:a)" != "a" &&
test "$(git show main:b)" != "b" &&
test "$(git show main:c)" != "c" &&
test "$(git show main^:a)" != "a" &&
test "$(git show main^:b)" == "b" &&
test "$(git show main^:c)" != "c"
[congrats]
Well done! Try tavelling between the commits using `git checkout`, so you can look at their contents again!

31
levels/index/it/change Normal file
View file

@ -0,0 +1,31 @@
title = Aggiornare i file nell'indice
cards = add commit
[description]
Quando cambiamo i files l'indice non cambia da solo. Dobbiamo usare `git add` per aggiornare l'indice alla nuova versione del file..
Proviamoci!
Le icone nel file manager ti mostrano quando il file attuale (bianco) e la versione nell'indice (blu) differiscono o sono uguali!
[win]
Bene! L'indice è anche chiamato "staging area" (area di staging) - E contiene esattamente ciò che finisce nel prossimo commit quando usi `git commit`!
[setup]
echo "La candela brucia con una fiamma blu." > candle
git add .
git commit -m "L'inizio"
[win]
# Fai una modifica alla candela
test "$(git diff --name-only)" = "candle" || file -f .git/candle-changed && touch .git/candle-changed
# Aggiungi la candella.
test "$(git diff --cached --name-only)" = "candle" || file -f .git/candle-added && touch .git/candle-added
# Fai un commit.
test "$(git diff --name-only HEAD HEAD^)" = "candle"

25
levels/index/it/checkout Normal file
View file

@ -0,0 +1,25 @@
title = Checking out files from the index
cards = add reset-file checkout-file commit
[description]
So you've made changes to your files, but you decide that you don't want to keep them! You can use `git checkout` for that!
What happens if you have already update the index, like in file c? You have to reset the index first!
[setup]
echo a > a
echo b > b
echo c > c
git add .
git commit -m "Initial commit"
echo x > a
echo x > b
echo x > c
git add c
[win]
# Remove all changes in your local files!
test "$(git diff --name-only | wc -l)" -eq 0

51
levels/index/it/compare Normal file
View file

@ -0,0 +1,51 @@
title = Passo dopo passo
cards = checkout commit-auto
[description]
Benvenuto! nella lezione di oggi impareremo come creare commits con più precisione!
Dai un'occhiata a queste due linee temporali. Hanno lo stesso risultato, ma in una delle due è molto più semplice capire cosa è successo.
[win]
# Esatto! Avere ogni cambiamento nel proprio commit rende più facile capire cosa sta succedendo!
git branch --show-current | grep step-by-step
[setup]
echo "Una piccola ma pesante palla di vetro." > ball
echo "Un sottile libro che sta in piedi." > book
echo "Una candela brucia con una fiamma blu." > candle
echo "Un sensore di fumo. E' assolutamente silenzioso." > smoke_detector
git add .
git commit -m "L'inizio"
git branch -M all-at-once
echo "La palla adesso tocca il libro." > ball
echo "Il libro è caduto." > book
echo "La candella è stata spenta." > candle
git commit -am "La fine"
git checkout HEAD^
git checkout -b step-by-step
echo "La palla adesso tocca il libro." > ball
git commit -am "La palla rotola verso il libro"
echo "Il libro è caduto." > book
git commit -am "Il libro è caduto"
echo "La candela è stata spenta." > candle
git commit -am "Il libro ha spento la candela"
git checkout HEAD~3
[win]
# Prendi la sequenza temporale più chiara e fai suonare il sensore di fumo!
git show step-by-step:smoke_detector | tail -n 1 | grep -v "assolutamente silenzioso"

28
levels/index/it/new Normal file
View file

@ -0,0 +1,28 @@
title = Aggiungere nuovi file all'indice
cards = add commit
[description]
Finora, quando abbiamo eseguito un commit abbiamo sempre registrato lo stato di tutti gli oggetti, vero?
Ma Git ti permette di scegliere i cambiamenti che si vogliono mettere in un commit!
Per sapere come funziona, dobbiamo conoscere l'"indice"! Nell'indice, possiamo preparare ciò che sarà nel prossimo commit. In questo gioco, l'indice è rappresentato da un'aura blu attorno alle icone nel file manager!
Inizialmente, l'indice è vuoto. Per fare un commit che contenga un nuovo file, dobbiamo aggiungerlo!
[cli]
Puoi usare il completamento con la tabulazione nel terminale! Inizia a scrivere il nome di un file e premi il tasto tab per completarlo. Così risparmi tempo!
[setup]
echo "La candela brucia con una fiamma blu." > candle
[win]
# Aggiungi la candela.
test "$(git diff --cached --name-only)" = "candle" || file -f .git/candle-added && touch .git/candle-added
# Crea un commit.
test "$(git ls-tree --name-only HEAD)" = "candle"

37
levels/index/it/reset Normal file
View file

@ -0,0 +1,37 @@
title = Resettare i file nell'indice
cards = add reset-file commit
[description]
Vedi l'ombra scura dietro le icone? Questa è la versione del file nell'ultimo commit!
Per esempio, queste candele sono state spente e quella modifica è stata aggiunta!
Ma è stato un errore! Vuoi solo spegnere al candela rossa nel prossimo commit!
Se hai già aggiunto un file modificato all'indice ma vuoi ripristinarlo, puoi usare `git reset`!
[setup]
echo "Sta bruciando!" > red_candle
echo "Sta bruciando!" > green_candle
echo "Sta bruciando!" > blue_candle
git add .
git commit -m "L'inizio"
echo "È stata spenta." > red_candle
echo "È stata spenta." > green_candle
echo "È stata spenta." > blue_candle
git add .
[win]
# Ripristina i cambiamenti nella candela verde e in quella blu!
git show :green_candle | grep burning &&
git show :blue_candle | grep burning &&
git show :red_candle | grep -v burning
# E fai un commit
git show main:green_candle | grep burning &&
git show main:blue_candle | grep burning &&
git show main:red_candle | grep -v burning

24
levels/index/it/rm Normal file
View file

@ -0,0 +1,24 @@
title = Delete a file in the next commit
cards = add reset-file checkout-file rm file-delete commit
[description]
If you want to remove a file in the next commit, you can use `git rm`! This will both delete the file locally, and in the index.
If a file is modified, you'll need to reset these changes first/reset the files.
[setup]
echo a > a
echo x > b
echo x > c
git add .
git commit -m "Initial commit"
echo x > a
echo b > b
git add b
[win]
# Make a commit where all files are deleted ¯\_(^_^)_/¯
test "$(git ls-tree main | wc -l)" -eq 0

53
levels/index/it/steps Normal file
View file

@ -0,0 +1,53 @@
title = Aggiungere le modifice una per volta
cards = add reset-file commit
[description]
L'indice è veramente utile perché ci permette di essere precisi su quali cambiamenti vogliamo includere in ogni commit!
[setup]
echo "Un martello, in equilibrio sul suo manico." > hammer
echo "Una bottiglia contenente un liquido trasparente." > bottle
echo "Un cubetto di zucchero bianco." > sugar_cube
git add .
git commit -m "L'inizio"
[win]
# Fai dei cambiamenti a tutti e tre gli oggetti per creare una sequenza logica di eventi!
test "$(git diff --name-only | wc -l)" -eq 3 || file -f .git/candle-changed && touch .git/candle-changed
# Aggiungi solo uno dei cambiamenti!
test "$(git diff --cached --name-only | wc -l)" -eq 1 || file -f .git/candle-added && touch .git/candle-added
# E fai un commit
COUNT=0
for commit in $(git cat-file --batch-check='%(objectname) %(objecttype)' --batch-all-objects | grep 'commit$' | cut -f1 -d' '); do
if test "$(git diff --name-only $commit $commit^ | wc -l)" -eq 1; then
COUNT=$((COUNT+1))
fi
done
test "$COUNT" -ge 1
# Fai un secondo commit che registri solo un singolo cambiamento.
COUNT=0
for commit in $(git cat-file --batch-check='%(objectname) %(objecttype)' --batch-all-objects | grep 'commit$' | cut -f1 -d' '); do
if test "$(git diff --name-only $commit $commit^ | wc -l)" -eq 1; then
COUNT=$((COUNT+1))
fi
done
test "$COUNT" -ge 2
# E aggiungine un terzo.
COUNT=0
for commit in $(git cat-file --batch-check='%(objectname) %(objecttype)' --batch-all-objects | grep 'commit$' | cut -f1 -d' '); do
if test "$(git diff --name-only $commit $commit^ | wc -l)" -eq 1; then
COUNT=$((COUNT+1))
fi
done
test "$COUNT" -ge 3

27
levels/intro/it/cli Normal file
View file

@ -0,0 +1,27 @@
title = La line di comando
cards =
[description]
Queste carte da gioco sono state disegnate per essere usate e ricordate facilmente! Ti consigliamo di attenerti a loro se non hai molta esperienza di Git!
[cli]
Ma c'è un'altra via per interagire con Git:
Prova a digitare `git init` nel terminale qui sotto e premere il pulsante Enter!
[setup]
rm -rf .git
[win]
# Inizializza la macchina del tempo!
test -d .git
[congrats]
Perfetto! Al posto di usare le carte da gioco, puoi anche fare tutto dalla line di comando!
La line di comando e piuttosto potente! A volte, puoi usarla per risolvere le attività più velocemente che con l'interfaccia grafica.

32
levels/intro/it/commit Normal file
View file

@ -0,0 +1,32 @@
title = Il tuo primo commit!
cards = commit-auto
[description]
Puoi usare la tua macchina del tempo per scattare istantanee degli oggetti intorno a te! Qui puoi metterlo in pratica!
(Il tuo insegnante versa un pò di acqua nel bicchiere)
[cli]
Nuovamente, al posto di usare le carte, puoi scrivere i comandi, che sono stampati sulle carte, nel terminale in basso!
Questo è totalmente opzionale! Ma questa è una conoscenza super utile nel mondo reale - e ti farà avere un distintivo scintillante! :)
[setup]
echo "Il bicchiere è pieno di acqua." > glass
[win]
# Crea un'istantanea del bicchiere (un "commit")
git rev-parse HEAD
# Cambia il contenuto del bicchiere!
! test "$(cat glass)" = "Il bicchiere è pieno di acqua."
# E crea un secondo "commit"!
git rev-parse HEAD^ && ! test "$(git show main:glass)" = "Il bicchiere è bieno di acqua."
[congrats]
Perfetto! Puoi provare a creare altri "commit". Quando ti sentirai a posto, premi su "Next Level".

42
levels/intro/it/copies Normal file
View file

@ -0,0 +1,42 @@
title = Crea una copia
cards =
[description]
Questa volta, stai facendo molte copie di backup - puoi guardarli cliccandoci sopra!
[congrats]
Okay, questo è un modo di lavorare.
Ma sei preoccupato che ti ritroverai con centinaia di copie di questo modulo e sarà difficile tenerne traccia nel tempo.
Specialmente quando lavori con altre persone, inviare copie avanti ed indietro non sembra l'ideale.
Fermati, devi provare questa macchina del tempo!
[setup]
rm -rf .git
echo "~ Perchè voglio imparare Git ~
(Devo ancora scriverlo.)" >> form.txt
echo "~ Perchè volgio imparare Git ~
- Così posso annullare gli errori" >> form2.txt
echo "~ Perchè volgio imparare Git ~
- Così posso annullare gli errori
- Per tracciare i mie progetti attraverso il tempo" >> form2_final.txt
cp form2_final.txt form2_really_final.txt
[win]
# Aggiungi una nuova line al file form2_really_final.txt!
test "$(cat form2_really_final.txt | wc -l )" -ge 5

Some files were not shown because too many files have changed in this diff Show more