ā§§ā§Ļ.ā§Ģ āϰā§āĻĢāĻžāϰā§āύā§āϏ āϏā§āĻĒā§āĻāĻŋāĻĢāĻŋāĻā§āĻļāύ (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