Vivasoft-logo

ā§§ā§Ļ.ā§Ģ āϰ⧇āĻĢāĻžāϰ⧇āĻ¨ā§āϏ āĻ¸ā§āĻĒ⧇āϚāĻŋāĻĢāĻŋāϕ⧇āĻļāύ (Refspec)

āĻāχ āĻŦāχ āĻ, āφāĻŽāϰāĻž āĻ•āĻŋāϛ⧁ local branch āϕ⧇ āĻ•āĻŋāϛ⧁ remote branch āĻāϰ āϏāĻžāĻĨ⧇ āϞāĻŋāĻ™ā§āĻ• āĻ•āϰāĻžāϰ āϏāϰāϞ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻĻ⧇āϖ⧇āĻ›āĻŋ, āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻāχ āϞāĻŋāĻ™ā§āĻ• āϗ⧁āϞāĻž āĻ…āύ⧇āĻ• āϜāϟāĻŋāϞ āĻšāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āĻŽāύ⧇ āĻ•āϰ⧇āύ āφāĻĒāύāĻŋ āφāϗ⧇āϰ āĻ•ā§Ÿā§‡āĻ•āϟāĻž āĻ…āĻ§ā§āϝāĻžā§Ÿ āĻ…āύ⧁āϏāϰāĻŖ āĻ•āϰ⧇ āĻāĻ•āϟāĻŋ āϛ⧋āϟ local āĻ—āĻŋāϟ repository āĻŦāĻžāύāĻŋā§Ÿā§‡āϛ⧇āύ, āĻāĻŦāĻ‚ āĻāĻ–āύ āĻāϤ⧇ remote āϏāĻžāĻ°ā§āĻ­āĻžāϰ āĻāϰ āĻ‰ā§ŽāϏ āϝ⧁āĻ•ā§āϤ āĻ•āϰāĻŦ⧇āύāσ
				
					$ git remote add origin https://github.com/schacon/simplegit-progit
				
			

āωāĻĒāϰ⧇āϰ command āϟāĻŋ āϰāĻžāύ āĻ•āϰāϞ⧇ āĻāϟāĻŋ .git/config āĻĢāĻžāχāϞ āĻ āĻāĻ•āϟāĻŋ āĻ…āĻ‚āĻļ āϝ⧁āĻ•ā§āϤ āĻ•āϰ⧇, āϝāĻž remote (origin) āĻāϰ āĻ‰ā§ŽāϏ āϕ⧇ āϚāĻŋāύāĻŋā§Ÿā§‡ āĻĻā§‡ā§Ÿ āϝāĻžāϤ⧇ āĻĨāĻžāϕ⧇āĨ¤Â  remote repository āĻāϰ URL āĻāĻŦāĻ‚ refspec āĻ āĻāϟāĻŋ āĻŦā§āϝāĻŦāĻšā§ƒāϤ āĻšāĻŦ⧇ remote āĻĨ⧇āϕ⧇ fetch (repository āĻāϰ āϏāĻŦ content āφāύāĻž) āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝāσ

				
					[remote "origin"]
	url = https://github.com/schacon/simplegit-progit
	fetch = +refs/heads/*:refs/remotes/origin/*

				
			

refspec āĻāϰ āĻĢāϰāĻŽā§āϝāĻžāϟ āĻšāĻšā§āϛ⧇, āĻĒā§āϰāĻĨāĻŽā§‡ āĻāĻ•āϟāĻŋ āϐāĻšā§āĻ›āĻŋāĻ• +, āĻāϰ āĻĒāϰ⧇ <src>:<dst>, āϝ⧇āĻ–āĻžāύ⧇ <src> āĻšāϞ remote āĻāϰ references āĻāϰ āϞāĻŋāĻ™ā§āĻ• āĻĒā§āϝāĻžāϟāĻžāĻ°ā§āύ āĻāĻŦāĻ‚ <dst> āĻšāϞ āϝ⧇āĻ–āĻžāύ⧇ āĻ“āχ reference āϗ⧁āϞ locally āĻŸā§āĻ°ā§āϝāĻžāĻ• āĻ•āϰāĻž āĻšā§Ÿ āĨ¤

 (+) git āϕ⧇ āĻŦāϞ⧇ reference āϗ⧁āϞ⧋ āϕ⧇ āφāĻĒāĻĄā§‡āϟ āĻ•āϰāϤ⧇ āϝāĻĻāĻŋ  fast-forward āĻŦā§āϝāĻŦāĻšāĻžāϰ āύāĻž āĻšā§ŸāĨ¤

āϏāĻžāϧāĻžāϰāĻŖāϤ, git remote add origin āĻ•āĻŽā§āϝāĻžāĻ¨ā§āĻĄ āϟāĻŋ āύāĻŋāĻœā§‡ āĻ refspec āϗ⧁āϞ āϝ⧁āĻ•ā§āϤ āĻ•āϰ⧇, git refs/heads/ āĻāϰ āϝāϤ reference āφāϛ⧇ āϏāĻŦ āϏāĻžāĻ°ā§āĻ­āĻžāϰ (āĻāχāĻ–āĻžāύ⧇ āϏāĻžāĻ°ā§āĻ­āĻžāϰ āĻŦāϞāϤ⧇ remote repository āĻāϰ host āϕ⧇ āĻŦ⧁āĻāĻžāĻšā§āϛ⧇) āĻĨ⧇āϕ⧇ fetch āĻ•āϰ⧇ locally refs/remotes/origin/ āĻ āύāĻŋā§Ÿā§‡ āφāϏ⧇āĨ¤ āĻāĻ–āύ āϝāĻĻāĻŋ āϏāĻžāĻ°ā§āĻ­āĻžāϰ āĻ āĻāĻ•āϟāĻŋ master branch āĻĨāĻžāϕ⧇, āφāĻĒāύāĻŋ āϏ⧇ branch āĻāϰ log locally āĻĻ⧇āĻ–āϤ⧇ āĻĒāĻžāϰāĻŦ⧇āύ āύāĻŋāĻšā§‡āϰ āϝ⧇ āϕ⧋āύ āĻ­āĻžāĻŦ⧇āσ

				
					$ git log origin/master
$ git log remotes/origin/master
$ git log refs/remotes/origin/master

				
			

āωāĻĒāϰ⧇āϰ āϏāĻŦ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āϗ⧁āϞ⧋ āϏāĻŽāĻžāĻ°ā§āĻĨāĻ•, āĻ•āĻžāϰāĻŖ git āϏāĻŦ āϗ⧁āϞ⧋āϕ⧇ āϏāĻŽā§āĻĒā§āϰāϏāĻžāϰ āĻ•āϰ⧇ refs/remotes/origin/master āĻ•āϰ⧇ āĻ¨ā§‡ā§ŸāĨ¤

āϝāĻĻāĻŋ āφāĻĒāύāĻŋ āϚāĻžāύ git āĻĒā§āϰāĻ¤ā§āϝ⧇āĻ• āĻŦāĻžāϰ remote āϏāĻžāĻ°ā§āĻ­āĻžāϰ āĻĨ⧇āϕ⧇ āĻļ⧁āϧ⧁ master āϕ⧇āχ pull āĻ•āϰāĻŦ⧇ āĻāĻŦāĻ‚ āϏ⧇ āϏāĻŽā§Ÿā§‡ āĻŦāĻžāĻ•āĻŋ āϏāĻŦ branch pull āĻ•āϰāĻŦ⧇ āύāĻž, āϏ⧇āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ āφāĻĒāύāĻŋ fetch āĻāϰ āĻŽāĻžāύ āϕ⧇ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰ⧇ āĻļ⧁āϧ⧁ āĻŽāĻžāĻ¤ā§āϰ remote āĻāϰ master āϕ⧇ āϚāĻŋāύāĻŋā§Ÿā§‡ āĻĻāĻŋāϤ⧇ āĻĒāĻžāϰ⧇āύāσ

 

				
					fetch = +refs/heads/master:refs/remotes/origin/master

				
			

āĻāχāϟāĻž āĻāχ repository āĻāϰ āϜāĻ¨ā§āϝ āĻĄāĻŋāĻĢāĻ˛ā§āϟ refspec āϝ⧇āϟāĻž git fetch āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻŦ⧇āĨ¤ āϝāĻĻāĻŋ āφāĻĒāύāĻŋ āĻļ⧁āϧ⧁ āĻāĻ•āĻŦāĻžāϰ āĻāχāϟāĻž override āĻ•āϰ⧇ āĻ…āĻ¨ā§āϝ branch āĻāϰ āĻ•āĻ¨ā§āĻŸā§‡āĻ¨ā§āϟ master āĻ āύāĻŋā§Ÿā§‡ āφāϏāϤ⧇ āϚāĻžāύ, āφāĻĒāύāĻžāϕ⧇ āϏ⧇ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ refspec āϟāĻž cli āϤ⧇ āϞāĻŋāϖ⧇ āĻĻā§‡ā§ŸāĻž āϞāĻžāĻ—āĻŦ⧇āĨ¤ āϝ⧇āĻŽāύ – remote server āĻāϰ master āϕ⧇ āϝāĻĻāĻŋ āφāĻĒāύāĻŋ āφāĻĒāύāĻžāϰ locally origin/mymaster branch āĻ pull āĻ•āϰ⧇āϤ⧇ āϚāĻžāύ, āφāĻĒāύāĻŋ āĻāχ command āϟāĻŋ run āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύāσ

				
					$ git fetch origin master:refs/remotes/origin/mymaster
				
			

āφāĻĒāύāĻŋ āĻāĻ•āĻžāϧāĻŋāĻ• refspec āĻ“ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻ•āϰ⧇ āĻĻāĻŋāϤ⧇ āĻĒāĻžāϰ⧇āύāĨ¤ command line āĻ āφāĻĒāύāĻŋ āĻāĻ•āĻžāϧāĻŋāĻ• branch pull āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύ āĻāĻ­āĻžāĻŦ⧇āσ

				
					$ git fetch origin master:refs/remotes/origin/mymaster \
	 topic:refs/remotes/origin/topic
From git@github.com:schacon/simplegit
 ! [rejected]        master     -> origin/mymaster  (non fast forward)
 * [new branch]      topic      -> origin/topic

				
			

āĻāχ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇, master āĻāϰ pull āϟāĻž rejected āĻšā§Ÿā§‡āϛ⧇, āĻ•āĻžāϰāĻŖ āĻāχāϟāĻž fast-forward reference āĻšāĻŋāϏāĻžāĻŦ⧇ pull āĻ•āϰāϤ⧇ āĻŦāϞāĻž āĻšā§Ÿ āύāĻžāχāĨ¤ āφāĻĒāύāĻŋ āĻāχāϟāĻž override āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύ refspec āĻāϰ āφāϗ⧇ + āϚāĻŋāĻšā§āύ āĻŦāϏāĻŋā§Ÿā§‡āĨ¤

āφāĻĒāύāĻŋ fetch āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āφāĻĒāύāĻžāϰ repository configuration āĻĢāĻžāχāϞ⧇ āĻāĻ•āĻžāϧāĻŋāĻ• refspec āĻ“ āĻŦāϞ⧇ āĻĻāĻŋāϤ⧇ āĻĒāĻžāϰ⧇āύāĨ¤ āϝāĻĻāĻŋ āφāĻĒāύāĻŋ master āĻ“ experiment branch āϗ⧁āϞ⧋ origin remote āĻĨ⧇āϕ⧇ fetch āĻ•āϰāϤ⧇ āϚāĻžāύ, āύāĻŋāĻšā§‡āϰ āĻĻ⧁āϟāĻŋ line āϝ⧁āĻ•ā§āϤ āĻ•āϰ⧇āύāσ

				
					[remote "origin"]
	url = https://github.com/schacon/simplegit-progit
	fetch = +refs/heads/master:refs/remotes/origin/master
	fetch = +refs/heads/experiment:refs/remotes/origin/experiment

				
			

Git 2.6.0 āĻĨ⧇āϕ⧇ āĻāĻ•āĻžāϧāĻŋāĻ• branch āύāĻžāĻŽā§‡āϰ pattern match āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āφāĻĒāύāĻŋ partial glob āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŦ⧇āύ fetch āĻāϰ value āĻšāĻŋāϏ⧇āĻŦ⧇āĨ¤ āϤāĻžāχ āύāĻŋāĻšā§‡āϰāϟāĻŋ āĻ•āĻžāϜ āĻ•āϰ⧇āσ

				
					fetch = +refs/heads/qa*:refs/remotes/origin/qa*
				
			

āφāϰ⧋ āϚāĻŽā§ŽāĻ•āĻžāϰ āĻŦā§āϝāĻžāĻĒāĻžāϰ āĻšāϞ, āφāĻĒāύāĻŋ namespace(āĻŦāĻž directory) āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻāĻ•āχ āĻĢāϞ āĻĒ⧇āϤ⧇ āĻĒāĻžāϰ⧇āύ āĻāĻŦāĻ‚ āĻāχāĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ command āϟāĻž āφāϰāĻ“ āĻŦā§‹āϧāĻ—āĻŽā§āϝ āĻšā§ŸāĨ¤ āϝ⧇āĻŽāύ, āϝāĻĻāĻŋ āφāĻĒāύāĻžāϰ QA āϟāĻŋāĻŽ āĻ•ā§Ÿā§‡āĻ•āϟāĻž branch āĻ āĻ•āĻžāϜ āĻ•āϰ⧇ push āĻ•āϰ⧇, āφāϰ āφāĻĒāύāĻŋ āϚāĻžāύ master branch āĻāĻŦāĻ‚ QA āϟāĻŋāĻŽ āĻāϰ branch āϗ⧁āϞāĻž āĻĒ⧇āϤ⧇ āϚāĻžāύ āĻāĻŦāĻ‚ āφāϰ āĻ•āĻŋāϛ⧁ āύāĻž, āϏ⧇āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ āφāĻĒāύāĻžāϰ config āϕ⧇ āĻāχāĻ­āĻžāĻŦ⧇ āϞāĻŋāĻ–āϤ⧇ āĻĒāĻžāϰ⧇āύāσ

				
					[remote "origin"]
	url = https://github.com/schacon/simplegit-progit
	fetch = +refs/heads/master:refs/remotes/origin/master
	fetch = +refs/heads/qa/*:refs/remotes/origin/qa/*

				
			

āϝāĻĻāĻŋ āφāĻĒāύāĻžāϰ āϟāĻŋāĻŽā§‡āϰ workflow āϜāϟāĻŋāϞ āĻšā§Ÿ āϝ⧇āϟāĻžā§Ÿ āĻāĻ•āϟāĻž QA āϟāĻŋāĻŽ āĻ•āĻŋāϛ⧁ branch push āĻ•āϰ⧇, āĻĄā§‡āϭ⧇āϞāĻĒāĻžāϰāϰāĻž āĻ•āĻŋāϛ⧁ branch push āĻ•āϰ⧇, integration āϟāĻŋāĻŽ āĻ•āĻŋāϛ⧁ remote branch āĻ āĻ•āĻžāϜ āĻ•āϰ⧇ āĻ“ push āĻ•āϰ⧇, āφāĻĒāύāĻŋ āϏ⧇āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ āφāĻĒāύāĻŋ āϏāĻšāĻœā§‡ branch āϗ⧁āϞāĻž āϕ⧇ āĻāχāĻ­āĻžāĻŦ⧇ namespace āĻĻāĻŋā§Ÿā§‡ āφāϞāĻžāĻĻāĻž āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŦ⧇āύāĨ¤

Refspecs push āĻ•āϰāĻž

āωāĻĒāϰ⧇ āĻŦāĻ°ā§āĻŖāĻŋāϤ āωāĻĒāĻžā§Ÿā§‡ āφāĻĒāύāĻŋ namespace āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ reference fetch āĻ•āϰāϤ⧇ āĻĒāĻžāϰāϤ⧇āϏ⧇āύ, āĻ•āĻŋāĻ¨ā§āϤ⧁ QA āϤāĻžāĻĻ⧇āϰ branch āϗ⧁āϞāĻž /qa namespace āĻ āĻĒā§āϰāĻĨāĻŽā§‡ āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āĻĻāĻŋāĻŦ⧇? āĻāχāϟāĻž āĻ•āϰāĻž āϝāĻžāĻŦ⧇ push āĻāϰ āϜāĻ¨ā§āϝ refspec āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇āĨ¤

āϝāĻĻāĻŋ QA āϤāĻžāĻĻ⧇āϰ master branch āϕ⧇ remote āϏāĻžāĻ°ā§āĻ­āĻžāϰ āĻāϰ qa/master āĻ push āĻ•āϰāϤ⧇ āϚāĻžā§Ÿ, āϤāĻžāϰāĻž āύāĻŋāĻšā§‡āϰ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āϚāĻžāϞāĻžāϤ⧇ āĻĒāĻžāϰ⧇āσ

				
					$ git push origin master:refs/heads/qa/master
				
			

āϤāĻžāϰāĻž āϝāĻĻāĻŋ āĻĒā§āϰāϤāĻŋāĻŦāĻžāϰ git push origin āϰāĻžāύ āĻ•āϰāϞ⧇ āϚāĻžā§Ÿ git āύāĻŋāϜ āĻĨ⧇āϕ⧇ āĻāχ āĻ•āĻžāϜāϟāĻŋ āĻ•āϰ⧁āĻ•, āϤāĻžāϰāĻž āϤāĻžāĻĻ⧇āϰ config āĻĢāĻžāχāϞ āĻ push āĻāϰ āϜāĻ¨ā§āϝ āύāĻŋāĻšā§‡āϰ āĻŽāĻžāύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āσ

				
					[remote "origin"]
	url = https://github.com/schacon/simplegit-progit
	fetch = +refs/heads/*:refs/remotes/origin/*
	push = refs/heads/master:refs/heads/qa/master

				
			

āĻāĻ–āύ āϝ⧇āϟāĻž āĻšāĻŦ⧇, git push origin āϰāĻžāύ āĻ•āϰāϞ⧇, local master branch āϟāĻŋ remote āĻāϰ qa/master branch āĻ push āĻšāĻŦ⧇āĨ¤

note: āφāĻĒāύāĻŋ refspec āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻāĻ• repository āĻĨ⧇āϕ⧇ āĻ…āĻ¨ā§āϝ repository āϤ⧇ push āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŦ⧇āύ āύāĻžāĨ¤ āĻāϟāĻŋ āĻ•āϰāϤ⧇ āϚāĻžāχāϞ⧇ āωāĻĻāĻžāĻšāϰāĻŖ āĻšāĻŋāϏ⧇āĻŦ⧇ āĻĻ⧇āĻ–āϤ⧇ āĻĒāĻžāϰ⧇āύ 6.2 Keep your GitHub public repository up-to-date

Reference delete āĻ•āϰāĻž

āφāĻĒāύāĻŋ refspec āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ remote āĻĨ⧇āϕ⧇ reference delete āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŦ⧇āύ āύāĻŋāĻšā§‡āϰ command āϟāĻŋ āϰāĻžāύ āĻ•āϰ⧇āσ

				
					$ git push origin :topic
				
			

āϝ⧇āĻšā§‡āϤ⧁ refspec āĻšāĻšā§āϛ⧇ :, āωāĻĒāϰ⧇āϰ command āĻ āĻ…āĻ‚āĻļāϟāĻŋ āĻ–āĻžāϞāĻŋ āϰāĻžāĻ–āĻžāϤ⧇ āĻāχāϟāĻž āĻŦ⧁āĻāĻžā§Ÿ topic branch āĻāϰ remote āĻ āĻ•āĻŋāϛ⧁ āϝ⧁āĻ•ā§āϤ āύ⧇āχ, āϝ⧇āχāϟāĻž remote āĻĨ⧇āϕ⧇ āĻāχ branch āĻāϰ reference āĻŽā§āϛ⧇ āĻĢ⧇āϞ⧇āĨ¤

āĻ…āĻĨāĻŦāĻž āφāĻĒāύāĻŋ āύāϤ⧁āύ command āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύ (Git v1.7.0 āĻĨ⧇āϕ⧇ āĻ…āĻ¨ā§āϤāĻ°ā§āϭ⧁āĻ•ā§āϤ)

				
					$ git push origin --delete topic