mirror of
https://github.com/git-learning-game/oh-my-git.git
synced 2025-05-01 20:42:01 +02:00
Merge b12d0e778f
into ce9fcda773
This commit is contained in:
commit
ca72650cf4
275 changed files with 4665 additions and 206 deletions
.gitignoreREADME.md
cards
add.svg.importbisect-bad.svg.importbisect-good.svg.importbisect-start.svg.importbranch-delete.svg.importbranch.svg.importcheckout-file.svg.importcheckout-from.svg.importcheckout.svg.importcherry-pick.svg.importclone.svg.importcommit-a.svg.importcommit-auto.svg.importcommit.svg.importfetch.svg.importfile-copy.svg.importfile-delete.svg.importfile-new.svg.importfile-rename.svg.importinit.svg.importmerge-abort.svg.importmerge.svg.importpull.svg.importpush.svg.importrebase-continue.svg.importrebase-interactive.svg.importrebase.svg.importreflog.svg.importreset-file.svg.importreset-hard.svg.importreset.svg.importrevert.svg.importrm.svg.importshow.svg.import
export_presets.cfgimages
cli-badge.svg.importcommit.svg.importconflict.svg.importfile.svg.importhead.svg.importmodified.svg.importnew.svg.importoh-my-git.png.importref.svg.importremote.svg.importremoved.svg.importsettings_32x32.pngsettings_32x32.png.importstring.svg.importuntracked.svg.import
levels
bisect
branches
en
it
changing-the-past
files
index
intro
4
.gitignore
vendored
4
.gitignore
vendored
|
@ -2,3 +2,7 @@
|
|||
/cache/
|
||||
/dependencies/
|
||||
/build/
|
||||
*~
|
||||
*.org
|
||||
#*#
|
||||
*.mo
|
||||
|
|
25
README.md
25
README.md
|
@ -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*.
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
BIN
images/settings_32x32.png
Normal file
Binary file not shown.
After ![]() (image error) Size: 1,022 B |
35
images/settings_32x32.png.import
Normal file
35
images/settings_32x32.png.import
Normal 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
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
43
levels/bisect/it/bisect
Normal 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...
|
44
levels/branches/it/branch-create
Normal file
44
levels/branches/it/branch-create
Normal 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!
|
47
levels/branches/it/branch-remove
Normal file
47
levels/branches/it/branch-remove
Normal 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? :)
|
43
levels/branches/it/checkout-commit
Normal file
43
levels/branches/it/checkout-commit
Normal 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
65
levels/branches/it/fork
Normal 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
48
levels/branches/it/grow
Normal 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"
|
89
levels/branches/it/reorder
Normal file
89
levels/branches/it/reorder
Normal 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."
|
86
levels/changing-the-past/it/rebase
Normal file
86
levels/changing-the-past/it/rebase
Normal 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.
|
77
levels/changing-the-past/it/reorder
Normal file
77
levels/changing-the-past/it/reorder
Normal 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
31
levels/files/it/files-add
Normal 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?
|
36
levels/files/it/files-delete
Normal file
36
levels/files/it/files-delete
Normal 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
38
levels/index/it/add
Normal 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
31
levels/index/it/change
Normal 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
25
levels/index/it/checkout
Normal 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
51
levels/index/it/compare
Normal 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
28
levels/index/it/new
Normal 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
37
levels/index/it/reset
Normal 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
24
levels/index/it/rm
Normal 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
53
levels/index/it/steps
Normal 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
27
levels/intro/it/cli
Normal 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
32
levels/intro/it/commit
Normal 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
42
levels/intro/it/copies
Normal 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
Loading…
Add table
Add a link
Reference in a new issue