ā§§ā§Ļ.ā§Ŧ āĻ—āĻŋāϟ āχāĻ¨ā§āϟāĻžāĻ°ā§āύāĻžāϞāϏ – āĻŸā§āϰāĻžāĻ¨ā§āϏāĻĢāĻžāϰ āĻĒā§āϰ⧋āĻŸā§‹āĻ•āϞ

āĻŸā§āϰāĻžāĻ¨ā§āϏāĻĢāĻžāϰ āĻĒā§āϰ⧋āĻŸā§‹āĻ•āϞ

āĻ—āĻŋāϟ āĻĻ⧁āϟāĻŋ āĻĒā§āϰāϧāĻžāύ āωāĻĒāĻžāϝāĻŧ⧇ āĻĻ⧁āϟāĻŋ āϰāĻŋāĻĒā§‹āϜāĻŋāϟāϰāĻŋ āĻāϰ āĻŽāĻ§ā§āϝ⧇ āĻĄā§‡āϟāĻž āĻ¸ā§āĻĨāĻžāύāĻžāĻ¨ā§āϤāϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇: “āĻĄāĻžāĻŽā§āĻŦ” āĻĒā§āϰ⧋āĻŸā§‹āĻ•āϞ āĻāĻŦāĻ‚ “āĻ¸ā§āĻŽāĻžāĻ°ā§āĻŸâ€ āĻĒā§āϰ⧋āĻŸā§‹āĻ•āϞāĨ¤ āĻāχ āĻ…āύ⧁āĻšā§āϛ⧇āĻĻ⧇ āĻāχ āĻĻ⧁āϟāĻŋ āĻĒā§āϰāϧāĻžāύ āĻĒā§āϰ⧋āĻŸā§‹āĻ•āϞ āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āĻ•āĻžāϜ āĻ•āϰ⧇ āϤāĻž āϏāĻ‚āĻ•ā§āώāĻŋāĻĒā§āϤāĻ­āĻžāĻŦ⧇ āφāϞ⧋āϚāύāĻž āĻ•āϰāĻž āĻšāĻŦ⧇āĨ¤

āĻĄāĻžāĻŽā§āĻŦ āĻĒā§āϰ⧋āĻŸā§‹āĻ•āϞ

āϝāĻĻāĻŋ HTTP āĻĻāĻŋā§Ÿā§‡ āĻāĻ•āϟāĻŋ āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āĻĒāĻžāĻ āϝ⧋āĻ—ā§āϝ (read only) āϰāĻŋāĻĒā§‹āϜāĻŋāϟāϰāĻŋ āϏ⧇āϟ-āφāĻĒ āĻ•āϰāĻž āĻšā§Ÿ, āϤāĻžāĻšāϞ⧇ āϏāĻŽā§āĻ­āĻŦāϤ āĻĄāĻžāĻŽā§āĻŦ āĻĒā§āϰ⧋āĻŸā§‹āĻ•āϞ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻāϟāĻž āĻ•āϰāĻž āĻšā§Ÿā§‡āϛ⧇āĨ¤ āĻāχ āĻĒā§āϰ⧋āĻŸā§‹āĻ•āϞāϟāĻŋāϕ⧇ “āĻĄāĻžāĻŽā§āĻŦ” āĻŦāϞāĻž āĻšāϝāĻŧ āĻ•āĻžāϰāĻŖ āĻāϟāĻŋ āĻŸā§āϰāĻžāĻ¨ā§āϏāĻĒā§‹āĻ°ā§āϟ āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻž āϚāϞāĻžāĻ•āĻžāϞ⧇ āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇ āϕ⧋āύāĻ“ āĻ—āĻŋāϟ-āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āϕ⧋āĻĄā§‡āϰ āĻŦā§āϝāĻžāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āύāĻž; āϤāĻžāχ āĻŦāĻŋāώāϝāĻŧāĻŦāĻ¸ā§āϤ⧁ āφāύāĻžāϰ āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻž āĻšāϞ⧋ āĻ…āύ⧇āĻ• āϗ⧁āϞ⧋ HTTP GET āϰāĻŋāĻ•ā§‹ā§Ÿā§‡āĻ¸ā§āϟ, āϝ⧇āĻ–āĻžāύ⧇ āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟāϕ⧇ āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇ āĻ—āĻŋāϟ āϰāĻŋāĻĒā§‹āϜāĻŋāϟāϰāĻŋāϰ āύāĻ•āĻļāĻž āĻ…āύ⧁āĻŽāĻžāύ āĻ•āϰ⧇ āύāĻŋāϤ⧇ āĻšā§ŸāĨ¤
āĻŦāĻŋāσāĻĻā§āϰāσ āĻĄāĻžāĻŽā§āĻŦ āĻĒā§āϰ⧋āĻŸā§‹āĻ•āϞ āφāϜāĻ•āĻžāϞ āϖ⧁āĻŦāχ āĻ•āĻŽ āĻŦā§āϝāĻŦāĻšā§ƒāϤ āĻšāϝāĻŧāĨ¤ āĻāϟāĻž āĻĻāĻŋā§Ÿā§‡ āϰāĻŋāĻĒā§‹āϜāĻŋāϟāϰāĻŋ āϏ⧁āϰāĻ•ā§āώāĻŋāϤ āĻ•āϰāĻž āĻŦāĻž āĻŦā§āϝāĻ•ā§āϤāĻŋāĻ—āϤ āĻ•āĻžāĻœā§‡ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āϖ⧁āĻŦāχ āĻ•āĻ āĻŋāύ, āϤāĻžāχ āĻŦ⧇āĻļāĻŋāϰāĻ­āĻžāĻ— āĻ—āĻŋāϟ āĻšā§‹āĻ¸ā§āϟ (āĻ•ā§āϞāĻžāωāĻĄ-āĻ­āĻŋāĻ¤ā§āϤāĻŋāĻ• āĻāĻŦāĻ‚ āύāĻŋāϜ-āĻĒā§āϰāĻžāĻ™ā§āĻ—āύ (on-prem), āωāĻ­āϝāĻŧāĻ•ā§āώ⧇āĻ¤ā§āϰ⧇āχ) āĻāϟāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āύāĻŋāĻ°ā§‚ā§ŽāϏāĻžāĻšāĻŋāϤ āĻ•āϰāĻž āĻšā§ŸāĨ¤ āϏāĻžāϧāĻžāϰāĻŖāĻ­āĻžāĻŦ⧇ āĻĒāϰāĻžāĻŽāĻ°ā§āĻļ āĻĻ⧇āĻ“āϝāĻŧāĻž āĻšāϝāĻŧ āϝāĻžāϤ⧇ āϏāĻŦāĻžāχ āĻ¸ā§āĻŽāĻžāĻ°ā§āϟ āĻĒā§āϰ⧋āĻŸā§‹āĻ•āϞ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇, āĻĒāϰāĻŦāĻ°ā§āϤ⧀ āĻ…āύ⧁āĻšā§āϛ⧇āĻĻāϗ⧁āϞ⧋āϤ⧇ āĻ āύāĻŋā§Ÿā§‡ āĻŦāĻ°ā§āĻŖāύāĻž āĻ•āϰāĻž āĻšāĻŦ⧇āĨ¤ āĻĻ⧃āĻˇā§āϟāĻžāĻ¨ā§āϤāĻ¸ā§āĻŦāϰ⧂āĻĒ, āϏāĻŋāĻŽā§āĻĒāϞ āĻ—āĻŋāϟ āϞāĻžāχāĻŦā§āϰ⧇āϰāĻŋāϰ āϜāĻ¨ā§āϝ http-fetch āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻžāϟāĻŋ āĻ…āύ⧁āϏāϰāĻŖ āĻ•āϰāĻŋ:
				
					$ git clone http://server/simplegit-progit.git
				
			
āĻāχ āĻ•āĻŽāĻžāĻ¨ā§āĻĄāϟāĻŋ āĻĒā§āϰāĻĨāĻŽāϤ āϝ⧇ āĻ•āĻžāϜāϟāĻŋ āĻ•āϰ⧇ āϤāĻž āĻšāϞ info/refs āĻĢāĻžāχāϞ āϗ⧁āϞ⧋ āύāĻŋā§Ÿā§‡ āφāϏ⧇āĨ¤ āĻāχ āĻĢāĻžāχāϞāϟāĻŋ update-server-info āĻ•āĻŽāĻžāĻ¨ā§āĻĄāϟāĻŋ āĻĻā§āĻŦāĻžāϰāĻž āϞ⧇āĻ–āĻž āĻšāϝāĻŧ⧇āϛ⧇, āϤāĻžāχ āφāĻĒāύāĻžāϕ⧇ HTTP āĻŸā§āϰāĻžāĻ¨ā§āϏāĻĒā§‹āĻ°ā§āϟ āϏāĻ āĻŋāĻ•āĻ­āĻžāĻŦ⧇ āĻ•āĻžāϜ āĻ•āϰāĻžāύ⧋āϰ āϜāĻ¨ā§āϝ āĻāϟāĻŋāϕ⧇ āĻāĻ•āϟāĻŋ post-receive āĻšā§āĻ• āĻšāĻŋāϏ⧇āĻŦ⧇ āϏāĻ•ā§āϰāĻŋāϝāĻŧ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇:
				
					=> GET info/refs
ca82a6dff817ec66f44342007202690a93763949     refs/heads/master

				
			
āĻāĻ–āύ āφāĻĒāύāĻžāϰ āĻ•āĻžāϛ⧇ āϰāĻŋāĻŽā§‹āϟ āϰ⧇āĻĢāĻžāϰ⧇āĻ¨ā§āϏ āϗ⧁āϞ⧋ āĻāĻŦāĻ‚ āϤāĻžāĻĻ⧇āϰ SHA-1 āĻāϰ āĻāĻ•āϟāĻŋ āϤāĻžāϞāĻŋāĻ•āĻž āϰāϝāĻŧ⧇āϛ⧇āĨ¤ āĻāϰāĻĒāϰ, HEAD āϰ⧇āĻĢāĻžāϰ⧇āĻ¨ā§āϏāϟāĻŋ āϖ⧁āρāϜāϤ⧇ āĻšāĻŦ⧇ āϝāĻžāϤ⧇ āĻĒāϰāĻŦāĻ°ā§āϤ⧀āϤ⧇ āϕ⧋āĻĨāĻžā§Ÿ āĻšā§‡āĻ•-āφāωāϟ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ āϤāĻž āϜāĻžāύāĻž āϝāĻžā§Ÿ:
				
					=> GET HEAD
ref: refs/heads/master

				
			
āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻžāϟāĻŋ āϏāĻŽā§āĻĒāĻ¨ā§āύ āĻšāĻ“ā§ŸāĻžāϰ āĻĒāϰ master āĻŦā§āϰāĻžāĻžā§āĻšā§‡ āĻšā§‡āĻ• āφāωāϟ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤ āĻāχ āĻŽā§āĻšā§āĻ°ā§āϤ⧇, āĻĒāϰāĻŦāĻ°ā§āϤ⧀ āĻĒā§āϰāĻ•ā§āϰāĻŋ⧟āĻž āĻļ⧁āϰ⧁ āĻ•āϰāĻž āϝāĻžā§ŸāĨ¤ āĻ•āĻžāϰāĻŖ āĻāĻ–āĻžāύ⧇ āĻļ⧁āϰ⧁āϰ āĻ¸ā§āĻĨāĻžāύ āĻšāϞ āĻ•āĻŽāĻŋāϟ āĻ…āĻŦāĻœā§‡āĻ•ā§āϟ ca82a6 āϝāĻž info/refs āĻĢāĻžāχāϞ⧇ āφāϛ⧇, āĻĢ⧇āϚ āĻ•āϰāĻž āĻļ⧁āϰ⧁ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ:
				
					=> GET objects/ca/82a6dff817ec66f44342007202690a93763949
(179 bytes of binary data)

				
			
āĻāϰāĻĒāϰ āĻāĻ•āϟāĻŋ āĻ…āĻŦāĻœā§‡āĻ•ā§āϟ āĻĒāĻžāĻ“ā§ŸāĻž āϝāĻžāĻŦ⧇ āϝ⧇āϟāĻž āϏāĻžāĻ°ā§āĻ­āĻžāϰ āĻ āϞ⧁āϜ āĻ­āĻžāĻŦ⧇ āĻŦāĻŋāĻ¨ā§āϝāĻ¸ā§āϤ āĻ›āĻŋāϞ, āϝāĻž āĻ¸ā§āĻŸā§āϝāĻžāϟāĻŋāĻ• HTTP GET āϰāĻŋāĻ•ā§‹ā§Ÿā§‡āĻ¸ā§āĻŸā§‡āϰ āϰ⧇āϏāĻĒāĻ¨ā§āϏāĨ¤ āĻāϟāĻžāϕ⧇ zlib-uncompress āĻ•āϰāϞ⧇ āĻŦāĻŋāĻ¸ā§āϤāĻžāϰāĻŋāϤ āĻšā§‡āĻĄāĻžāϰ āĻāĻŦāĻ‚ āĻ•āĻŽāĻŋāϟ āĻŦāĻŋāώāϝāĻŧāĻŦāĻ¸ā§āϤ⧁ āĻĻ⧇āĻ–āĻž āϝāĻžāĻŦ⧇:
				
					$ git cat-file -p ca82a6dff817ec66f44342007202690a93763949
tree cfda3bf379e4f8dba8717dee55aab78aef7f4daf
parent 085bb3bcb608e1e8451d4b2432f8ecbe6306e7e7
author Scott Chacon <schacon@gmail.com> 1205815931 -0700
committer Scott Chacon <schacon@gmail.com> 1240030591 -0700

Change version number

				
			
āĻāϰ āĻĒāϰ⧇, āφāĻĒāύāĻžāϰ āĻ•āĻžāϛ⧇ āĻĒ⧁āύāϰ⧁āĻĻā§āϧāĻžāϰ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āφāϰāĻ“ āĻĻ⧁āϟāĻŋ āĻ…āĻŦāĻœā§‡āĻ•ā§āϟ āφāϛ⧇ – cfda3b, āϝ⧇āϟāĻŋ āĻāχāĻŽāĻžāĻ¤ā§āϰ āĻĒ⧁āύāϰ⧁āĻĻā§āϧāĻŋāϤ āĻ•āĻŽāĻŋāϟ āĻāϰ āĻŸā§āϰāĻŋ āĻāϰ āĻŦāĻŋāώāϝāĻŧāĻŦāĻ¸ā§āϤ⧁; āφāϰ āĻĒā§āϝāĻžāϰ⧇āĻ¨ā§āϟ āĻ•āĻŽāĻŋāϟ 085bb3:
				
					=> GET objects/08/5bb3bcb608e1e8451d4b2432f8ecbe6306e7e7
(179 bytes of data)

				
			
āĻāϰ āĻĻā§āĻŦāĻžāϰāĻž āĻĒāϰāĻŦāĻ°ā§āϤ⧀ āĻ•āĻŽāĻŋāϟ āĻ…āĻŦāĻœā§‡āĻ•ā§āϟ āĻĒāĻžāĻ“ā§ŸāĻž āϝāĻžā§Ÿ, āĻŸā§āϰāĻŋ āĻ…āĻŦāĻœā§‡āĻ•ā§āϟāϟāϟāĻŋ āĻĒāĻžāĻ“ā§ŸāĻžāϰ āϜāĻ¨ā§āϝ:
				
					=> GET objects/cf/da3bf379e4f8dba8717dee55aab78aef7f4daf
(404 - Not Found)

				
			
āĻ“āĻšā§‹ – āĻĻ⧇āϖ⧇ āĻŽāύ⧇ āĻšāĻšā§āϛ⧇ āϏ⧇āχ āĻŸā§āϰāĻŋ āĻ…āĻŦāĻœā§‡āĻ•ā§āϟāϟāĻŋ āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇ āϞ⧁āϜ āĻ­āĻžāĻŦ⧇ āϏāĻžāϜāĻžāύ⧋ āύ⧇āχ, āϤāĻžāχ āφāĻĒāύāĻŋ āĻāĻ•āϟāĻŋ 404 āϰ⧇āϏāĻĒāĻ¨ā§āϏ āĻĒāĻžāĻŦ⧇āύāĨ¤ āĻāϰ āϜāĻ¨ā§āϝ āĻ•āϝāĻŧ⧇āĻ•āϟāĻŋ āĻ•āĻžāϰāĻŖ āϰāϝāĻŧ⧇āϛ⧇ – āĻ…āĻŦāĻœā§‡āĻ•ā§āϟāϟāĻŋ āĻāĻ•āϟāĻŋ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ āϰāĻŋāĻĒā§‹āϜāĻŋāϟāϰāĻŋāϤ⧇ āĻĨāĻžāĻ•āϤ⧇ āĻĒāĻžāϰ⧇, āĻ…āĻĨāĻŦāĻž āĻāϟāĻŋ āĻāχ āϰāĻŋāĻĒā§‹āϜāĻŋāϟāϰāĻŋāϰ āĻāĻ•āϟāĻŋ āĻĒā§āϝāĻžāĻ•āĻĢāĻžāχāϞ⧇ āĻĨāĻžāĻ•āϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āĻ—āĻŋāϟ āĻĒā§āϰāĻĨāĻŽā§‡ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ āϤāĻžāϞāĻŋāĻ•āĻžāϗ⧁āϞ⧋ āĻ…āύ⧁āϏāĻ¨ā§āϧāĻžāύ āĻ•āϰ⧇:
				
					=> GET objects/info/http-alternates
(empty file)

				
			
āĻāϟāĻŋ āϝāĻĻāĻŋ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ URL āϗ⧁āϞ⧋āϰ āĻāĻ•āϟāĻŋ āϤāĻžāϞāĻŋāĻ•āĻž āωāĻĒāĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰ⧇, āϤāĻžāĻšāϞ⧇ āĻ—āĻŋāϟ āϏ⧇āĻ–āĻžāύ⧇ āϞ⧁āϜ āĻĢāĻžāχāϞ āĻāĻŦāĻ‚ āĻĒā§āϝāĻžāĻ•āĻĢāĻžāχāϞāϗ⧁āϞāĻŋāϰ āĻ…āύ⧁āϏāĻ¨ā§āϧāĻžāύ āĻ•āϰ⧇ – āĻāϟāĻŋ āĻāĻ•āϟāĻŋ āϚāĻŽā§ŽāĻ•āĻžāϰ āĻĒāĻĻā§āϧāϤāĻŋ āϝāĻžāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āĻĢāĻ°ā§āĻ• āĻ•āϰāĻž āĻĒā§āϰāĻœā§‡āĻ•ā§āϟāϗ⧁āϞ⧋ āĻĄāĻŋāĻ¸ā§āϕ⧇ āĻĒāϰāĻ¸ā§āĻĒāϰ āĻāϰ āĻŽāĻ§ā§āϝ⧇ āĻ…āĻŦāĻœā§‡āĻ•ā§āϟ āφāĻĻāĻžāύ āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āϝāĻžāχāĻšā§‹āĻ•, āϝ⧇āĻšā§‡āϤ⧁ āĻāχ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ āϕ⧋āύāĻ“ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ āϤāĻžāϞāĻŋāĻ•āĻž āĻĒāĻžāĻ“ā§ŸāĻž āϝāĻžā§ŸāύāĻŋ, āϤāĻžāĻšāϞ⧇ āĻ…āĻŦāĻœā§‡āĻ•ā§āϟāϟāĻŋ āĻ…āĻŦāĻļā§āϝāχ āĻāĻ•āϟāĻŋ āĻĒā§āϝāĻžāĻ•āĻĢāĻžāχāϞ āĻšāĻŋāϏ⧇āĻŦ⧇ āĻĨāĻžāĻ•āĻŦ⧇āĨ¤ āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇ āϕ⧋āύ āϕ⧋āύ āĻĒā§āϝāĻžāĻ•āĻĢāĻžāχāϞāϗ⧁āϞ⧋ āφāϛ⧇ āϤāĻž āĻĻ⧇āĻ–āĻžāϰ āϜāĻ¨ā§āϝ objects/info/packs āĻĢāĻžāχāϞāϟāĻŋ āĻĻāϰāĻ•āĻžāϰ, āϝ⧇āϟāĻžāϤ⧇ āĻāĻ•āϟāĻŋ āϤāĻžāϞāĻŋāĻ•āĻž āϰāϝāĻŧ⧇āϛ⧇ (āĻāϗ⧁āϞ⧋ update-server-info āĻĻā§āĻŦāĻžāϰāĻžāĻ“ āϤ⧈āϰāĻŋ āĻ•āϰāĻž āĻšā§Ÿā§‡ āĻĨāĻžāϕ⧇):
				
					=> GET objects/info/packs
P pack-816a9b2334da9953e530f27bcac22082a9f5b835.pack

				
			
āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇ āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āĻāĻ•āϟāĻŋ āĻĒā§āϝāĻžāĻ•āĻĢāĻžāχāϞ āϰāϝāĻŧ⧇āϛ⧇, āϤāĻžāχ āĻ…āĻŦāĻœā§‡āĻ•ā§āϟāϟāĻŋ āϏ⧁āĻ¸ā§āĻĒāĻˇā§āϟāĻ­āĻžāĻŦ⧇āχ āϏ⧇āĻ–āĻžāύ⧇ āϰāϝāĻŧ⧇āϛ⧇, āϤāĻŦ⧇ āϤāĻž āύāĻŋāĻļā§āϚāĻŋāϤ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āϤāĻžāϞāĻŋāĻ•āĻž āĻĢāĻžāχāϞāϟāĻŋ āĻĻ⧇āĻ–āĻž āϝāĻžā§ŸāĨ¤ āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇ āĻāĻ•āĻžāϧāĻŋāĻ• āĻĒā§āϝāĻžāĻ•āĻĢāĻžāχāϞ āĻĨāĻžāĻ•āϞ⧇āĻ“ āϏ⧁āĻŦāĻŋāϧāĻž āφāϛ⧇, āϝāĻžāϤ⧇ āϕ⧋āύ āĻĒā§āϝāĻžāĻ•āĻĢāĻžāχāϞ⧇ āĻĒā§āϰāϝāĻŧā§‹āϜāύ⧀āϝāĻŧ āĻ…āĻŦāĻœā§‡āĻ•ā§āϟāϟāĻŋ āϰāϝāĻŧ⧇āϛ⧇ āϤāĻž āĻĻ⧇āĻ–āϤ⧇ āĻĒāĻžāϰāĻž āϝāĻžā§Ÿ:
				
					=> GET objects/pack/pack-816a9b2334da9953e530f27bcac22082a9f5b835.idx
(4k of binary data)

				
			
āĻāĻ–āύ āĻĒā§āϝāĻžāĻ•āĻĢāĻžāχāϞ⧇āϰ āϤāĻžāϞāĻŋāĻ•āĻžāϟāĻŋ āĻĨ⧇āϕ⧇ āĻĻ⧇āĻ–āϤ⧇ āĻĒāĻžāϰāĻž āϝāĻžāĻŦ⧇ āϝ⧇ āĻĒā§āĻ°ā§Ÿā§‹āϜāĻ¨ā§€ā§Ÿ āĻ…āĻŦāĻœā§‡āĻ•ā§āϟāϟāĻŋ āĻāϤ⧇ āφāϛ⧇ āĻ•āĻŋāύāĻž – āĻ•āĻžāϰāĻŖ āĻĒā§āϝāĻžāĻ•āĻĢāĻžāχāϞ⧇ āĻ…āĻŦāĻœā§‡āĻ•ā§āĻŸā§‡āϰ SHA-1 āϗ⧁āϞ⧋ āĻāĻŦāĻ‚ āĻ“āĻĻ⧇āϰ āĻ…āĻĢāϏ⧇āϟāϗ⧁āϞ⧋ āϤāĻžāϞāĻŋāĻ•āĻžāϭ⧁āĻ•ā§āϤ āĻ•āϰāĻž āĻĨāĻžāϕ⧇āĨ¤ āφāĻĒāύāĻžāϰ āĻ…āĻŦāĻœā§‡āĻ•ā§āϟ āϐāĻ–āĻžāύ⧇ āφāϛ⧇, āϤāĻžāχ āĻŦāĻŋāύāĻž āĻĻā§āĻŦāĻŋāϧāĻžā§Ÿ āĻĒ⧁āϰ⧋ āĻĒā§āϝāĻžāĻ•āĻĢāĻžāχāϞāϟāĻŋ āύāĻŋā§Ÿā§‡ āφāϏāϤ⧇ āĻĒāĻžāϰ⧇āύ:
				
					=> GET objects/pack/pack-816a9b2334da9953e530f27bcac22082a9f5b835.pack
(13k of binary data)

				
			
āĻŸā§āϰāĻŋ āĻ…āĻŦāĻœā§‡āĻ•ā§āϟ āĻĒāĻžāĻ“ā§ŸāĻžāϰ āĻĒāϰ āϏāĻŦāϗ⧁āϞ⧋ āĻ•āĻŽāĻŋāϟāχ āĻĒ⧜āĻž āϝāĻžāĻŦ⧇āĨ¤ āĻāϗ⧁āϞāĻŋ āϏāĻŦāχ āĻĄāĻžāωāύāϞ⧋āĻĄ āĻ•āϰāĻž āĻĒā§āϝāĻžāĻ•āĻĢāĻžāχāϞ⧇āϰ āĻŽāĻ§ā§āϝ⧇ āϰāϝāĻŧ⧇āϛ⧇, āϤāĻžāχ āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇ āφāϰ āϕ⧋āύ⧋ āϰāĻŋāĻ•ā§‹ā§Ÿā§‡āĻ¸ā§āϟ āĻĒāĻžāĻ āĻžāϤ⧇ āĻšāĻŦ⧇ āύāĻžāĨ¤ āĻ—āĻŋāϟ master āĻŦā§āϰāĻžāĻžā§āϚ āĻāϰ āĻāĻ•āϟāĻŋ āĻ•āĻžāĻ°ā§āϝāĻ•āĻžāϰ⧀ āĻ…āύ⧁āϞāĻŋāĻĒāĻŋ āĻšā§‡āĻ•-āφāωāϟ āĻ•āϰ⧇ āĻļ⧁āϰ⧁āϤ⧇ āĻĄāĻžāωāύāϞ⧋āĻĄ āĻ•āϰāĻž HEAD āϰ⧇āĻĢāĻžāϰ⧇āĻ¨ā§āϏ āĻĻā§āĻŦāĻžāϰāĻž āύāĻŋāĻ°ā§āĻĻ⧇āĻļāĻŋāϤ āĻšāϝāĻŧ⧇āĻ›āĻŋāϞāĨ¤

āĻ¸ā§āĻŽāĻžāĻ°ā§āϟ āĻĒā§āϰ⧋āĻŸā§‹āĻ•āϞ

āĻĄāĻžāĻŽā§āĻŦ āĻĒā§āϰ⧋āĻŸā§‡āĻ•āϞāϟāĻŋ āϏāĻšāϜ āϤāĻŦ⧇ āĻ•āĻŋāϛ⧁āϟāĻž āĻ…āĻ•āĻžāĻ°ā§āϝāĻ•āϰ, āĻāϟāĻŋ āĻ•ā§āϞāĻžā§Ÿā§‡āĻ¨ā§āϟ āĻĨ⧇āϕ⧇ āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇ āĻĄā§‡āϟāĻž āϞāĻŋāĻ–āϤ⧇ āĻĒāĻžāϰ⧇ āύāĻžāĨ¤ āĻĄā§‡āϟāĻž āφāĻĻāĻžāύ-āĻĒā§āϰāĻĻāĻžāύ⧇āϰ āϜāĻ¨ā§āϝ āĻ¸ā§āĻŽāĻžāĻ°ā§āϟ āĻĒā§āϰ⧋āĻŸā§‹āĻ•āϞ āĻŦ⧇āĻļā§€ āĻĒā§āϰāϚāϞāĻŋāϤ āĻŽāĻžāĻ§ā§āϝāĻŽ, āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻāϰ āϜāĻ¨ā§āϝ āϰāĻŋāĻŽā§‹āĻŸā§‡ āĻ—āĻŋāϟ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āϜāĻžāύāĻžāύ⧋ āĻĒā§āϰāϏ⧇āϏ⧇āϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āĻĒā§œā§‡ – āϝ⧇āϟāĻž āϞ⧋āĻ•āĻžāϞ āĻĄā§‡āϟāĻž āĻĒ⧜āϤ⧇ āĻĒāĻžāϰ⧇, āĻŦ⧁āĻāϤ⧇ āĻĒāĻžāϰ⧇ āĻ•ā§āϞāĻžā§Ÿā§‡āĻ¨ā§āĻŸā§‡āϰ āĻ•āĻžāϛ⧇ āĻ•āĻŋ āφāϛ⧇ āĻāĻŦāĻ‚ āĻ•āĻŋ āĻĻāϰāĻ•āĻžāϰ, āĻāĻŦāĻ‚ āĻāϰ āϜāĻ¨ā§āϝ āϏāĻžāĻŽāĻžā§āϜāĻ¸ā§āϝāĻĒā§‚āĻ°ā§āĻŖ āĻĒā§āϝāĻžāĻ•āĻĢāĻžāχāϞ āϤ⧈āϰ⧀ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āĻĄā§‡āϟāĻž āφāĻĻāĻžāύ-āĻĒā§āϰāĻĻāĻžāύ⧇āϰ āϜāĻ¨ā§āϝ āĻĻ⧁āχ āϏ⧇āϟ āĻĒā§āϰāϏ⧇āϏ āĻ°ā§Ÿā§‡āϛ⧇: āĻāĻ• āĻœā§‹ā§œāĻž āĻĄā§‡āϟāĻž āφāĻĒāϞ⧋āĻĄ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ, āφāϰ āφāϰ⧇āĻ• āĻœā§‹ā§œāĻž āĻĄāĻžāωāύāϞ⧋āĻĄ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝāĨ¤

āĻĄā§‡āϟāĻž āφāĻĒāϞ⧋āĻĄāĻŋāĻ‚

āϕ⧋āύ āϰāĻŋāĻŽā§‹āϟ āĻĒā§āϰāϏ⧇āϏ⧇ āĻĄā§‡āϟāĻž āφāĻĒāϞ⧇āĻžāĻĄ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻ—āĻŋāϟ send-pack āĻāĻŦāĻ‚ receive-pack āĻĒā§āϰāϏ⧇āϏ āĻĻ⧁āϟāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇āĨ¤ send-pack āĻĒā§āϰāϏ⧇āϏāϟāĻŋ āĻ•ā§āϞāĻžā§Ÿā§‡āĻ¨ā§āĻŸā§‡ āϰāĻžāύ āĻ•āϰ⧇ āĻāĻŦāĻ‚ āϰāĻŋāĻŽā§‹āϟ-āϏāĻžāχāĻĄā§‡āϰ receive-pack āĻĒā§āϰāϏ⧇āϏ⧇ āĻ•āĻžāύ⧇āĻ•ā§āϟ āĻ•āϰ⧇āĨ¤

SSH

āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ, āφāĻĒāύāĻŋ āφāĻĒāύāĻžāϰ āĻĒā§āϰāĻœā§‡āĻ•ā§āĻŸā§‡ git push origin master āϰāĻžāύ āĻ•āϰāϞ⧇āύ āϝ⧇āĻ–āĻžāύ⧇ origin āĻāϰ URL āĻāĻŽāύāĻ­āĻžāĻŦ⧇ āĻĻ⧇āĻ“ā§ŸāĻž āϝāĻžāϤ⧇ āĻ•āϰ⧇ āϏ⧇ SSH āĻĒā§āϰ⧋āĻŸā§‹āĻ•āϞ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇āĨ¤ āĻ—āĻŋāϟ send-process āĻļ⧁āϰ⧁ āĻ•āϰ⧇, āϝāĻž āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇āϰ āϏāĻžāĻĨ⧇ SSH āĻāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āĻ•āĻžāύ⧇āĻ•ā§āϟ āĻ•āϰ⧇āĨ¤ āĻāχ āĻĒā§āϰāϏ⧇āϏāϟāĻŋ āϰāĻŋāĻŽā§‹āϟ āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇ āϝ⧇ āĻ•āĻŽāĻžāĻ¨ā§āĻĄāϟāĻŋ āϰāĻžāύ āĻ•āϰāĻžāύ⧋āϰ āĻšā§‡āĻˇā§āϟāĻž āĻ•āϰ⧇ āϏ⧇āϟāĻŋ āύāĻŋāĻŽā§āύāϰ⧂āĻĒāσ
				
					$ ssh -x git@server "git-receive-pack 'simplegit-progit.git'"
00a5ca82a6dff817ec66f4437202690a93763949 refs/heads/master□report-status \
    delete-refs side-band-64k quiet ofs-delta \
    agent=git/2:2.1.1+github-607-gfba4028 delete-refs
0000

				
			
āĻĒā§āϰāϤāĻŋāϟāĻž āϰ⧇āĻĢāĻžāϰ⧇āĻ¨ā§āϏ⧇āϰ āϜāĻ¨ā§āϝ git-receive-pack āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻāĻ•āϟāĻž āϞāĻžāχāύ āϰ⧇āϏāĻĒāĻ¨ā§āϏ āĻ•āϰ⧇ – āĻāχ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇, āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ master āĻŦā§āĻ°ā§āϝāĻžāĻžā§āϚ āĻāĻŦāĻ‚ āĻāϰ SHA-1āĨ¤ āĻāĻ›āĻžā§œāĻž āĻĒā§āϰāĻĨāĻŽ āϞāĻžāχāύ⧇ āϏāĻžāĻ°ā§āĻ­āĻžāϰ āĻ•āĻŋ āĻ•āĻŋ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŦ⧇ āϏ⧇āϗ⧁āϞ⧋āϰāĻ“ āĻāĻ•āϟāĻž āϤāĻžāϞāĻŋāĻ•āĻž āĻĨāĻžāϕ⧇ (āĻāĻ–āĻžāύ⧇ report-status, delete-refs, āĻāĻ›āĻžā§œāĻžāĻ“ āφāϰ⧋ āĻ•āĻŋāϛ⧁, āĻ•ā§āϞāĻžā§Ÿā§‡āĻ¨ā§āϟ āĻļāύāĻžāĻ•ā§āϤāĻ•āĻžāϰ⧀ āĻŦ⧈āĻļāĻŋāĻˇā§āĻŸā§āϝ āĻ°ā§Ÿā§‡āϛ⧇)āĨ¤

āĻāĻ–āĻžāύ⧇ āĻ–āĻ¨ā§āĻĄā§‡ āĻ–āĻ¨ā§āĻĄā§‡ āĻĄā§‡āϟāĻž āĻĒāĻžāĻ āĻžāύ⧋ āĻšā§ŸāĨ¤ āĻĒā§āϰāϤāĻŋāϟāĻž āĻ–āĻ¨ā§āĻĄ āĻļ⧁āϰ⧁ āĻšā§Ÿ āϚāĻžāϰ āĻ…āĻ‚āϕ⧇āϰ āĻšā§‡āĻ•ā§āϏāĻžāĻĄā§‡āϏāĻŋāĻŽāĻžāϞ āĻŽāĻžāύ āĻĻāĻŋā§Ÿā§‡, āϝāĻž āĻĻāĻŋā§Ÿā§‡ āĻ–āĻ¨ā§āĻĄāϟāĻž āĻ•āϤ āϏāĻžāχāĻœā§‡āϰ (āύāĻŋāĻœā§‡āϰ ā§Ē āĻŦāĻžāχāϟ āĻĻ⧈āĻ°ā§āĻ˜ā§āϝ āϏāĻš) āϤāĻž āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻ•āϰāĻž āĻšā§ŸāĨ¤ āĻ–āĻ¨ā§āĻĄāϗ⧁āϞ⧋āϤ⧇ āϏāĻžāϧāĻžāϰāĻŖāϤāσ āĻāĻ• āϞāĻžāχāύ āĻĄā§‡āϟāĻž āĻĨāĻžāϕ⧇ āĻāĻŦāĻ‚ āĻļ⧇āώ⧇ āĻāĻ•āϟāĻž āϞāĻžāχāύāĻĢāĻŋāĻĄ āĻĨāĻžāϕ⧇āĨ¤ āĻāĻ–āĻžāύ⧇ āĻĒā§āϰāĻĨāĻŽ āĻ–āĻ¨ā§āĻĄ āĻļ⧁āϰ⧁ āĻšāĻšā§āϛ⧇ 00a5 āĻĻāĻŋā§Ÿā§‡, āϝāĻž 165 āĻāϰ āĻšā§‡āĻ•ā§āϏāĻžāĻĄā§‡āϏāĻŋāĻŽāĻžāϞ āĻŽāĻžāύ, āĻ…āĻ°ā§āĻĨāĻžā§Ž āĻ–āĻ¨ā§āĻĄāϟāĻž 165 āĻŦāĻžāχāϟ āϏāĻžāχāĻœā§‡āϰāĨ¤ āĻĒāϰ⧇āϰ āĻ–āĻ¨ā§āĻĄāϟāĻž 0000, āĻ…āĻ°ā§āĻĨāĻžā§Ž āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇āϰ āϰ⧇āĻĢāĻžāϰ⧇āĻ¨ā§āϏ āϤāĻžāϞāĻŋāĻ•āĻž āĻ•āϰāĻž āĻļ⧇āώāĨ¤

āĻāĻ–āύ, āϝ⧇āĻšā§‡āϤ⧁ āĻāϟāĻŋ āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇āϰ āĻ…āĻŦāĻ¸ā§āĻĨāĻž āϜāĻžāύ⧇, send-pack āĻĒā§āϰāϏ⧇āϏ āύāĻŋāĻ°ā§āϧāĻžāϰāĻŖ āĻ•āϰ⧇ āϕ⧀ āϕ⧀ āĻ•āĻŽāĻŋāϟ āĻāϰ āĻ•āĻžāϛ⧇ āφāϛ⧇ āϝāĻž āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇ āύ⧇āχāĨ¤ āĻĒā§āϰāϤāĻŋāϟāĻž āϰ⧇āĻĢāĻžāϰ⧇āĻ¨ā§āϏ⧇āϰ āϜāĻ¨ā§āϝ āϝāĻž āĻāχ āĻĒ⧁āĻļ⧇ āφāĻĒāĻĄā§‡āϟ āĻšāĻŦ⧇, send-pack āĻĒā§āϰāϏ⧇āϏ āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇āϰ receive-pack āĻĒā§āϰāϏ⧇āϏāϕ⧇ āϜāĻžāύāĻžā§ŸāĨ¤ āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ, āϝāĻĻāĻŋ master āĻŦā§āĻ°ā§āϝāĻžāĻžā§āϚ āφāĻĒāĻĄā§‡āϟ āĻšā§Ÿ āĻāĻŦāĻ‚ āĻāĻ•āϟāĻž experimental āύāϤ⧁āύāĻ­āĻžāĻŦ⧇ āϝ⧋āĻ— āĻ•āϰāĻž āĻšā§Ÿ, āϤāĻžāĻšāϞ⧇ send-pack āϰ⧇āϏāĻĒāĻ¨ā§āϏāϟāĻž āύāĻŋāĻŽā§āύāϰ⧂āĻĒ āĻšāϤ⧇ āĻĒāĻžāϰ⧇āσ
				
					0076ca82a6dff817ec66f44342007202690a93763949 15027957951b64cf874c3557a0f3547bd83b3ff6 \
    refs/heads/master report-status
006c0000000000000000000000000000000000000000 cdfdb42577e2506715f8cfeacdbabc092bf63e8d \
    refs/heads/experiment
0000

				
			
āϝ⧇āϏāĻŦ āφāĻĒāĻĄā§‡āϟ āĻšāĻŦ⧇ āϏ⧇āϏāĻŦ⧇āϰ āĻĒā§āϰāϤāĻŋāϟāĻž āϰ⧇āĻĢāĻžāϰ⧇āĻ¨ā§āϏ⧇āϰ āϜāĻ¨ā§āϝ āĻ—āĻŋāϟ āĻāĻ•āϟāĻŋ āϞāĻžāχāύ āĻĒāĻžāĻ āĻžā§Ÿ āϝāĻžāϤ⧇ āϞāĻžāχāύ⧇āϰ āĻĻ⧈āĻ°ā§āĻ˜ā§āϝ (āϞ⧇āĻ¨ā§āĻĨ) āĻĨāĻžāϕ⧇, āφāϗ⧇āϰ SHA-1, āύāϤ⧁āύ SHA-1 āφāϰ āϝ⧇ āϰ⧇āĻĢāĻžāϰ⧇āĻ¨ā§āϏ āφāĻĒāĻĄā§‡āϟ āĻšāĻšā§āϛ⧇ āϏ⧇ āϰ⧇āĻĢāĻžāϰ⧇āĻ¨ā§āϏāĨ¤ āĻĒā§āϰāĻĨāĻŽ āϞāĻžāχāύ⧇ āĻ•ā§āϞāĻžā§Ÿā§‡āĻ¨ā§āϟ āĻ•āĻŋ āĻ•āĻŋ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇ āϏ⧇āϗ⧁āϞ⧋āĻ“ āĻĨāĻžāϕ⧇āĨ¤ experiment āϰ⧇āĻĢāĻžāϰ⧇āĻ¨ā§āϏāϟāĻž āύāϤ⧁āύ āĻ•āϰ⧇ āϝ⧋āĻ— āĻšā§Ÿā§‡āϛ⧇ āϤāĻžāχ SHA-1 āĻ āϏāĻŦ āĻŽāĻžāύ āĻļ⧁āĻ¨ā§āϝ – āĻāϰ āĻĻā§āĻŦāĻžāϰāĻž āĻŦā§‹āĻāĻžā§Ÿ āϝ⧇ āϐāĻ–āĻžāύ⧇ āĻāϰ āφāϗ⧇ āĻ•āĻŋāϛ⧁āχ āĻ›āĻŋāϞ⧋ āύāĻžāĨ¤ āφāĻŦāĻžāϰ, āϝāĻĻāĻŋ āĻĄāĻžāύ āĻĒāĻžāĻļ⧇ āϏāĻŦ āĻļ⧁āĻ¨ā§āϝ āĻĨāĻžāϕ⧇, āϤāĻžāĻšāϞ⧇ āϕ⧋āύ āϰ⧇āĻĢāĻžāϰ⧇āĻ¨ā§āϏ āĻŽā§āϛ⧇ āĻĢ⧇āϞāĻž āĻšā§Ÿā§‡āϛ⧇, āĻŽāĻžāύ⧇ āφāϗ⧇āϰāϟāĻžāϰ āĻŦāĻŋāĻĒāϰ⧀āϤāĨ¤

āĻāϰāĻĒāϰ, āĻ•ā§āϞāĻžā§Ÿā§‡āĻ¨ā§āϟ āϏāĻŦāϗ⧁āϞāĻž āĻ…āĻŦāĻœā§‡āĻ•ā§āĻŸā§‡āϰ āĻāĻ•āϟāĻŋ āĻĒā§āϝāĻžāĻ•āĻĢāĻžāχāϞ āĻĒāĻžāĻ āĻžā§Ÿ āϝāĻž āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇āϰ āĻ•āĻžāϛ⧇ āĻ āĻŽā§āĻšā§āĻ°ā§āϤ⧇ āύ⧇āχāĨ¤ āĻ…āĻŦāĻļ⧇āώ⧇, āϏāĻžāĻ°ā§āĻ­āĻžāϰ āϏāĻĢāϞāϤāĻž (āĻŦāĻž āĻŦā§āϝāĻ°ā§āĻĨāϤāĻž) āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰ⧇ āĻāĻ•āϟāĻŋ āϰ⧇āϏāĻĒāĻ¨ā§āϏ āĻĒāĻžāĻ āĻžā§Ÿ:
				
					000eunpack ok
				
			

HTTP(S)

āĻāχ āĻĒā§āϰāϏ⧇āϏāϟāĻŋ HTTP āĻāϰ āĻŽāϤāχ āĻĒā§āϰāĻžā§Ÿ, āϤāĻŦ⧇ āĻšā§āϝāĻžāĻ¨ā§āĻĄāĻļ⧇āĻ•āĻŋāĻ‚āϟāĻž āĻāĻ•āϟ⧁ āφāϞāĻžāĻĻāĻžāĨ¤ āĻ•āĻžāύ⧇āĻ•āĻļāύ āĻļ⧁āϰ⧁ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āϰāĻŋāĻ•ā§‹ā§Ÿā§‡āĻ¸ā§āϟāϟāĻŋ āύāĻŋāĻŽā§āĻŽāϰ⧂āĻĒāσ
				
					=> GET http://server/simplegit-progit.git/info/refs?service=git-receive-pack
001f# service=git-receive-pack
00ab6c5f0e45abd7832bf23074a333f739977c9e8188 refs/heads/master□report-status \
    delete-refs side-band-64k quiet ofs-delta \
    agent=git/2:2.1.1~vmg-bitmaps-bugaloo-608-g116744e
0000

				
			
āĻĒā§āϰāĻĨāĻŽ āĻ•ā§āϞāĻžā§Ÿā§‡āĻ¨ā§āϟ-āϏāĻžāĻ°ā§āĻ­āĻžāϰ āφāĻĻāĻžāύ-āĻĒā§āϰāĻĻāĻžāύ āĻāϰ āĻĻā§āĻŦāĻžāϰāĻž āĻļ⧇āώ āĻšā§ŸāĨ¤ āϤāĻžāϰāĻĒāϰ āĻ•ā§āϞāĻžā§Ÿā§‡āĻ¨ā§āϟ send-pack āĻāϰ āĻĄā§‡āϟāĻž/āϤāĻĨā§āϝ āϏāĻŽā§‡āϤ āĻāĻ•āϟāĻž POST āϰāĻŋāĻ•ā§‹ā§Ÿā§‡āĻ¸ā§āϟ āĻĒāĻžāĻ āĻžā§Ÿ:
				
					=> POST http://server/simplegit-progit.git/git-receive-pack
				
			
POST āϰāĻŋāĻ•ā§‹ā§Ÿā§‡āĻ¸ā§āĻŸā§‡ send-pack āĻāϰ āφāωāϟāĻĒ⧁āϟ āφāϰ āĻĒā§āϝāĻžāĻ•āĻĢāĻžāχāϞāϟāĻžāϕ⧇ āĻĒ⧇-āϞ⧋āĻĄ āĻšāĻŋāϏ⧇āĻŦ⧇ āĻĒāĻžāĻ āĻžā§ŸāĨ¤ āϏāĻžāĻ°ā§āĻ­āĻžāϰ āĻāϰāĻĒāϰ HTTP āϰ⧇āϏāĻĒāĻ¨ā§āϏ⧇āϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āϏāĻĢāϞ āĻŦāĻž āĻŦā§āϝāĻ°ā§āĻĨ āĻšāĻ“ā§ŸāĻžāϰ āĻāϰ āύāĻŋāĻ°ā§āĻĻ⧇āĻļāύāĻž āĻĻā§‡ā§ŸāĨ¤ āĻāϟāĻž āĻŽāύ⧇ āϰāĻžāĻ–āϤ⧇ āĻšāĻŦ⧇ āϝ⧇ HTTP āĻĒā§āϰ⧋āĻŸā§‹āĻ•āϞāϟāĻŋ āĻāχ āĻ–āĻ¨ā§āĻĄ āĻ–āĻ¨ā§āĻĄ āĻĄā§‡āϟāĻž, āĻŸā§āϰāĻžāĻ¨ā§āϏāĻĢāĻžāϰ āĻāύāϕ⧋āĻĄāĻŋāĻ‚-āĻāϰ āĻ­āĻŋāϤāϰ⧇ āĻāϕ⧀āĻ­ā§‚āϤ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤

āĻĄā§‡āϟāĻž āĻĄāĻžāωāύāϞ⧋āĻĄāĻŋāĻ‚

āĻĄā§‡āϟāĻž āĻĄāĻžāωāύāϞ⧋āĻĄā§‡āϰ āϏāĻŽā§Ÿā§‡ fetch-pack āφāϰ upload-pack āĻĒā§āϰāϏ⧇āϏ āĻĻ⧁āϟāĻŋ āϜ⧜āĻŋāϤ āĻĨāĻžāϕ⧇āĨ¤ āĻ•ā§āϞāĻžā§Ÿā§‡āĻ¨ā§āϟ āĻ•āĻŋ āĻ•āĻŋ āĻĄā§‡āϟāĻž āĻĄāĻžāωāύāϞ⧋āĻĄ āĻ•āϰāĻŦ⧇ āϤāĻž āĻŦ⧁āĻāĻžāϰ āϜāĻ¨ā§āϝ fetch-pack āĻĒā§āϰāϏ⧇āϏ āĻļ⧁āϰ⧁ āĻ•āϰ⧇ āϝ⧇āϟāĻž āϰāĻŋāĻŽā§‹āϟ āϏāĻžāχāĻĄā§‡āϰ upload-pack āĻĒā§āϰāϏ⧇āϏ⧇āϰ āϏāĻžāĻĨ⧇ āĻ•āĻžāύ⧇āĻ•ā§āϟ āĻšā§ŸāĨ¤

SSH

āϝāĻĻāĻŋ SSH āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻĄā§‡āϟāĻž āφāύāĻž āĻšā§Ÿ, āϤāĻžāĻšāϞ⧇ fetch-pack āύāĻŋāĻšā§‡ āĻĻ⧇āĻ“ā§ŸāĻž āĻ•āĻŽāĻžāĻ¨ā§āĻĄā§‡āϰ āĻŽāϤ āĻ•āĻŋāϛ⧁ āϰāĻžāύ āĻ•āϰ⧇:
				
					$ ssh -x git@server "git-upload-pack 'simplegit-progit.git'"
				
			
fetch-pack āĻ•āĻžāύ⧇āĻ•ā§āϟ āĻšāĻ“ā§ŸāĻžāϰ āĻĒāϰ upload-pack āύāĻŋāĻšā§‡āϰ āĻŽāϤ āĻ•āĻŋāϛ⧁ āĻĢ⧇āϰāϤ āĻĒāĻžāĻ āĻžā§Ÿ:
				
					00dfca82a6dff817ec66f44342007202690a93763949 HEAD□multi_ack thin-pack \
    side-band side-band-64k ofs-delta shallow no-progress include-tag \
    multi_ack_detailed symref=HEAD:refs/heads/master \
    agent=git/2:2.1.1+github-607-gfba4028
003fe2409a098dc3e53539a9028a94b6224db9d6a6b6 refs/heads/master
0000

				
			
āĻāϟāĻž receive-pack āĻĨ⧇āϕ⧇ āϝ⧇ āϰ⧇āϏāĻĒāĻ¨ā§āϏ āφāϏ⧇, āϏ⧇āϟāĻžāϰ āĻŽāϤāχ, āϤāĻŦ⧇ āĻāϰ āĻ•āĻžāĻ°ā§āϝāĻ•ā§āώāĻŽāϤ āĻ­āĻŋāĻ¨ā§āύāĨ¤ āĻāϟāĻž HEAD āϕ⧋āĻĨāĻžā§Ÿ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ (symref=HEAD:refs/heads/master) āĻ•āϰ⧇ āφāϛ⧇ āϏ⧇āϟāĻžāĻ“ āĻĒāĻžāĻ āĻžā§Ÿ āϝāĻžāϤ⧇ āĻ•āϰ⧇ āĻ•ā§āϞāĻžā§Ÿā§‡āĻ¨ā§āϟ āĻŦ⧁āĻāϤ⧇ āĻĒāĻžāϰ⧇ āϝ⧇ āϝāĻĻāĻŋ āĻāϟāĻž āĻ•ā§āϞ⧋āύ āĻšā§Ÿā§‡ āĻĨāĻžāϕ⧇ āϤāĻžāĻšāϞ⧇ āĻ•āĻŋ āĻ•āĻŋ āĻšā§‡āĻ•-āφāωāϟ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤ āĻāĻŽāϤāĻžāĻŦāĻ¸ā§āĻĨāĻžā§Ÿ, fetch-pack āĻĒā§āϰāϏ⧇āϏ āĻĻ⧇āϖ⧇ āĻ•āĻŋ āĻ•āĻŋ āĻ…āĻŦāĻœā§‡āĻ•ā§āϟ āĻāϰ āĻ•āĻžāϛ⧇ āφāϛ⧇ āĻāĻŦāĻ‚ āϰ⧇āϏāĻĒāĻ¨ā§āϏ āĻĒāĻžāĻ āĻžā§Ÿ āϕ⧀ āϕ⧀ āϞāĻžāĻ—āĻŦ⧇ “want” āφāϰ SHA-1 āϞāĻŋāϖ⧇; āĻāϟāĻž āĻāϰ āĻ•āĻžāϛ⧇ āϝāĻž āϝāĻž āφāϛ⧇ āĻāϰ āϜāĻ¨ā§āϝ “have” āφāϰ āϏāĻ‚āĻļā§āϞāĻŋāĻˇā§āϟ SHA-1 āϞāĻŋāϖ⧇ āĻāĻŦāĻ‚ āϤāĻžāϞāĻŋāĻ•āĻžāϰ āĻļ⧇āώ⧇ āĻāϟāĻŋ “done” āϞāĻŋāϖ⧇ āϝāĻžāϤ⧇ āĻ•āϰ⧇ upload-pack āĻĒā§āϰāϏ⧇āϏ āĻĒā§āĻ°ā§Ÿā§‹āϜāĻ¨ā§€ā§Ÿ āĻĄā§‡āϟāĻžāϰ āĻĒā§āϝāĻžāĻ•āĻĢāĻžāχāϞ āĻĒāĻžāĻ āĻžāύ⧋ āĻļ⧁āϰ⧁ āĻ•āϰ⧇āĨ¤
				
					003cwant ca82a6dff817ec66f44342007202690a93763949 ofs-delta
0032have 085bb3bcb608e1e8451d4b2432f8ecbe6306e7e7
0009done
0000

				
			

HTTP(S)

āĻĄā§‡āϟāĻž āĻĢ⧇āϚ āĻ•āϰāĻžāϰ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ āĻšā§āϝāĻžāĻ¨ā§āĻĄāĻļ⧇āϕ⧇āϰ āϜāĻ¨ā§āϝ āĻĻ⧁āχāϟāĻŋ HTTP āϰāĻŋāĻ•ā§‹ā§Ÿā§‡āĻ¸ā§āϟ āϞāĻžāϗ⧇āĨ¤ āĻĒā§āϰāĻĨāĻŽāϟāĻŋ āĻšāĻšā§āϛ⧇ āĻĄāĻžāĻŽā§āĻŦ āĻĒā§āϰ⧋āĻŸā§‹āĻ•āϞ⧇ āĻŦā§āϝāĻŦāĻšā§ƒāϤ āĻāĻ¨ā§āĻĄāĻĒā§Ÿā§‡āĻ¨ā§āĻŸā§‡ GET āϰāĻŋāĻ•ā§‹ā§Ÿā§‡āĻ¸ā§āϟ:
				
					=> GET $GIT_URL/info/refs?service=git-upload-pack
001e# service=git-upload-pack
00e7ca82a6dff817ec66f44342007202690a93763949 HEAD□multi_ack thin-pack \
    side-band side-band-64k ofs-delta shallow no-progress include-tag \
    multi_ack_detailed no-done symref=HEAD:refs/heads/master \
    agent=git/2:2.1.1+github-607-gfba4028
003fca82a6dff817ec66f44342007202690a93763949 refs/heads/master
0000

				
			
āĻāϟāĻž SSH āĻ•āĻžāύ⧇āĻ•āĻļāύ⧇āϰ git-upload-pack-āĻāϰ āĻŽāϤāχ āĻĒā§āϰāĻžā§Ÿ, āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻĻā§āĻŦāĻŋāĻ¤ā§€ā§Ÿ āφāĻĻāĻžāύ-āĻĒā§āϰāĻĻāĻžāύāϟāĻŋ āφāϞāĻžāĻĻāĻž āϰāĻŋāĻ•ā§‹ā§Ÿā§‡āĻ¸ā§āĻŸā§‡ āϏāĻŽā§āĻĒāĻ¨ā§āύ āĻšā§Ÿ:
				
					=> POST $GIT_URL/git-upload-pack HTTP/1.0
0032want 0a53e9ddeaddad63ad106860237bbf53411d11a7
0032have 441b40d833fdfa93eb2908e52742248faf0ee993
0000

				
			
āĻāχ āĻĢāϰāĻŽā§āϝāĻžāϟāϟāĻŋāĻ“ āωāĻĒāϰ⧇āϰ āĻĢāϰāĻŽā§āϝāĻžāĻŸā§‡āϰ āĻŽāϤāχāĨ¤ āĻāχ āϰāĻŋāĻ•ā§‹ā§Ÿā§‡āĻ¸ā§āĻŸā§‡āϰ āϰ⧇āϏāĻĒāĻ¨ā§āϏ āϏāĻĢāϞāϤāĻž āĻŦāĻž āĻŦā§āϝāĻ°ā§āĻĨāϤāĻž āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰ⧇, āĻāĻŦāĻ‚ āϏ⧇āχ āϏāĻžāĻĨ⧇ āĻĒā§āϝāĻžāĻ•āĻĢāĻžāχāϞāϟāĻŋāĻ“ āĻ…āĻ¨ā§āϤāĻ°ā§āϭ⧁āĻ•ā§āϤ āĻ•āϰ⧇āĨ¤

āĻĒā§āϰ⧋āĻŸā§‹āĻ•āϞ āϏāĻžāϰāϏāĻ‚āĻ•ā§āώ⧇āĻĒ

āĻāχ āĻ…āĻ§ā§āϝāĻžā§Ÿā§‡ āĻ¸ā§āĻĨāĻžāύāĻžāĻ¨ā§āϤāϰ āĻĒā§āϰ⧋āĻŸā§‹āĻ•āϞāϗ⧁āϞāĻŋāϰ āĻĒā§āϰāĻžāĻĨāĻŽāĻŋāĻ• āĻŦāĻŋāώ⧟āĻŦāĻ¸ā§āϤ⧁ āφāϞ⧋āϚāύāĻž āĻ•āϰāĻž āĻšā§Ÿā§‡āϛ⧇āĨ¤ āĻĒā§āϰ⧋āĻŸā§‹āĻ•āϞ⧇āϰ āφāϰ⧋ āĻ…āύ⧇āĻ• āĻŦ⧈āĻļāĻŋāĻˇā§āĻŸā§āϝ āĻ°ā§Ÿā§‡āϛ⧇, āϝ⧇āĻŽāύ multi-ack āĻŦāĻž side-band, āĻ•āĻŋāĻ¨ā§āϤ⧁ āϏ⧇āϗ⧁āϞ⧋ āύāĻŋā§Ÿā§‡ āφāϞ⧋āϚāύāĻž āĻ•āϰāĻž āĻāχ āĻŦāĻ‡ā§Ÿā§‡āϰ āωāĻĻā§āĻĻ⧇āĻļā§āϝ⧇āϰ āĻŦāĻžāχāϰ⧇āĨ¤ āĻāĻ–āĻžāύ⧇ āĻ•ā§āϞāĻžā§Ÿā§‡āĻ¨ā§āϟ āφāϰ āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇āϰ āĻ…āĻ­ā§āϝāĻ¨ā§āϤāϰ⧀āύ āĻāĻ•āϟāĻž āϏāĻžāϧāĻžāϰāĻŖ āϧāĻžāϰāĻŖāĻž āĻĻ⧇āĻ“ā§ŸāĻžāϰ āĻšā§‡āĻˇā§āϟāĻž āĻ•āϰāĻž āĻšā§Ÿā§‡āϛ⧇; āφāϰ⧋ āĻŦāĻŋāώāĻĻāĻ­āĻžāĻŦ⧇ āϜāĻžāύāĻžāϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āĻšāϞ⧇ āφāĻĒāύāĻžāϕ⧇ āĻ—āĻŋāĻŸā§‡āϰ āϏ⧋āĻ°ā§āϏ āϕ⧋āĻĄ āĻĻ⧇āĻ–āϤ⧇ āĻšāĻŦ⧇āĨ¤