Paano maglipat ng isang bagong lokal na sangay sa isang remote na Git repository at subaybayan ito?

Gusto kong magawa ang mga sumusunod:

  • Gumawa ng lokal na sangay batay sa iba pang (malayong o lokal na) sangay (sa pamamagitan ng git branch o git checkout -b )

  • I-click ang lokal na branch sa remote repository (i-publish), ngunit gawin ito kaya git pull at git push gagana kaagad.

Paano ito gawin?

Alam ko ang tungkol sa - --set-upstream sa Git 1.7, ngunit ito ay pagkilos pagkatapos ng paglikha. Gusto kong makahanap ng isang paraan upang gumawa ng katulad na mga pagbabago kapag nag-click ako ng isang sangay sa isang remote repository.

3689
04 мая '10 в 15:58 2010-05-04 15:58 Hiniling ni Roni Yaniv noong Mayo 04 '10 sa 15:58 2010-05-04 15:58
@ 13 sagot

Sa Git 1.7.0 at mas bago, maaari mong tingnan ang bagong sangay:

 git checkout -b <branch> 

Pag-edit ng mga file, pagdaragdag at pag-aayos. Pagkatapos ay mag- click sa -u opsyon (maikli para sa - --set-upstream ) :

 git push -u origin <branch> 

Magtatatag ang Git ng impormasyon sa pagsubaybay habang nagki-click ka.

5823
03 июня '11 в 23:50 2011-06-03 23:50 ang sagot ay ibinigay Daniel Ruoso Hunyo 03 '11 sa 23:50 2011-06-03 23:50

Kung hindi mo ibabahagi ang iyong repo sa iba pang mga gumagamit, ito ay kapaki-pakinabang upang itulak ang lahat ng iyong mga sanga sa isang remote, at - --set-upstream tama para sa iyo:

 git push --all -u 
border=0

(Hindi eksakto kung ano ang hiniling ng OP, ngunit ang isang line na interface na ito ay medyo popular)

Kung ibabahagi mo ang iyong repo sa iba, ito ay hindi isang magandang form, dahil ikaw ay pagpuno sa repo sa lahat ng iyong mga quirky pang-eksperimentong mga sanga.

449
20 янв. Ang sagot ay ibinigay ng ErichBSchulz Enero 20 2014-01-20 14:36 '14 sa 14:36 2014-01-20 14:36

Bago ang pagpapakilala ng git push -u wa>git push option upang makuha kung ano ang gusto mo. Dapat kang magdagdag ng bagong mga tagubilin sa pagsasaayos.

Kung ikaw ay lumilikha ng isang bagong sangay, gamitin ang:

 $ git checkout -b branchB $ git push origin branchB:branchB 

Maaari mong gamitin ang git config command upang maiwasan ang direktang pag-edit ng .git/config file.

 $ git config branch.branchB.remote origin $ git config branch.branchB.merge refs/heads/branchB 

O maaari mong manu-manong i-edit ang .git/config file upang magkaroon ng impormasyon tungkol sa pagsubaybay sa thread na ito.

 [branch "branchB"] remote = origin merge = refs/heads/branchB 
133
04 мая '10 в 16:03 2010-05-04 16:03 Sagot ay ibinigay ni Lohrun noong 04 Mayo '10 sa 16:03 2010-05-04 16:03

Maglagay lamang, upang lumikha ng isang bagong lokal na sangay, gawin ang:

 git branch <branch-name> 

Upang ilipat ito sa remote na repositoryo, sundin ang mga hakbang na ito:

 git push -u origin <branch-name> 
111
24 апр. sagot na ibinigay ng piyushmandovra sa Abril 24 2015-04-24 15:09 '15 sa 15:09 2015-04-24 15:09

Ang isang maliit na pagkakaiba-iba ng mga iminungkahing solusyon:

  1. Gumawa ng lokal na sangay batay sa iba pang (malayong o lokal na) sangay:

     git checkout -b branchname 
  2. I-click ang lokal na branch sa remote repository (i-publish), ngunit gawin itong traceable, kaya git pull at git push ay gagana kaagad

     git push -u origin HEAD 

    Ang paggamit ng HEAD ay "isang madaling paraan upang isalin ang kasalukuyang sangay sa parehong pangalan sa remote control". Pinagmulan: https://git-scm.com/docs/git-push Sa mga tuntunin ng Git HEAD (pangalawang kaso) ay isang link sa tuktok ng kasalukuyang sangay (puno).

    Ang pagpipilian na -u ay maikli lamang para sa - --set-setupstream . Ito ay magdagdag ng isang upstream na link sa pagsubaybay para sa kasalukuyang sangay. Maaari mong suriin ito sa pamamagitan ng pagtingin sa .git / config na file:

    2019

Akala ko na na-clone mo na ang proyekto, halimbawa:

 git clone http://github.com/myproject.git 
  • Pagkatapos ay lumikha ng isang bagong sangay sa iyong lokal na kopya at suriin ito:

     git checkout -b <newbranch> 
  • Ipagpalagay na nilikha mo ang "git bare -init" sa iyong server at nilikha myapp.git, dapat mong:

     git remote add origin ssh://example.com/var/git/myapp.git git push origin master 
  • Pagkatapos nito, dapat magagawa ng mga gumagamit

     git clone http://example.com/var/git/myapp.git 

TANDAAN. . Akala ko ang iyong server ay tumatakbo. Kung hindi, hindi ito gagana. Narito ang isang mahusay na praktikal na gabay.

ADDED

Magdagdag ng remote na sangay:

 git push origin master:new_feature_name 

Suriin kung ang lahat ay mabuti (piliin ang simula at ang listahan ng mga remote na sanga):

 git fetch origin git branch -r 

Gumawa ng isang lokal na sangay at subaybayan ang malayong sangay:

 git checkout -tb new_feature_name origin/new_feature_name 

I-update ang lahat:

 git pull 
27
Ang sagot ay ibinigay ng VP. 2010-05-04 16:04 04 Mayo '10 sa 16:04 2010-05-04 16:04

Ginagawa ko >

 git push -u origin localBranch:remoteBranchToBeCreated 

sa isang naka-kopya na proyekto.

Lumilikha ang Git ng isang bagong sangay na tinatawag na remoteBranchToBeCreated ilalim ng aking remoteBranchToBeCreated ko sa localBranch .

24
20 марта '17 в 14:13 2017-03-20 14:13 ang sagot ay ibinigay ng Arda March 20, '17 at 14:13 2017-03-20 14:13

i-edit ang hindi na ginagamit, gumamit lamang ng git push -u origin $BRANCHNAME


Gumamit ng git publish-branch mula sa iba't ibang mga tool ng Git ni William ( gitold repo at clone ).

Well, wa>git-publish-branch :

19
04 мая '10 в 16:03 2010-05-04 16:03 sumagot kay Tobias Kienzler noong 04 Mayo '10 sa 16:03 2010-05-04 16:03

Upang lumikha ng isang bagong sangay, ihihiwalay ito mula sa umiiral na sangay

git checkout -b <new_branch>

at pagkatapos ay i-click ang bagong thread na ito sa repository gamit

git push -u origin <new_branch>

Lumilikha ito at tinutulak ang lahat ng lokal na gumawa sa bagong likhang origin/<new_branch>

16
03 июня '15 в 23:36 2015-06-03 23:36 ang sagot ay ibinigay sa pamamagitan ng cptjack Hunyo 03 '15 sa 23:36 2015-06-03 23:36

Gumawa ako ng isang alias, kaya tuwing lumikha ako ng isang bagong sangay, tumpak na tanggalin at masubaybayan ang remote branch. Inilalagay ko ang sumusunod na snippet sa file na .bash_profile :

 # Create a new branch, push to origin and track that remote branch publishBranch() { git checkout -b $1 git push -u origin $1 } alias gcb=publishBranch 

Paggamit : i-type lamang gcb thuy/do-sth-kool sa thuy/do-sth-kool - ito ang bagong pangalan ng branch ko.

7
05 янв. ang sagot ay ibinigay ng Thuy Trinh 05 Ene 2016-01-05 13:11 '16 sa 13:11 2016-01-05 13:11

Para sa bersyon 1.7 GitLab, gamitin ang:

git checkout -b name_branch

(name_branch, ex: master)

Upang ipadala ito sa isang remote na repositoryo, sundin ang mga hakbang na ito:

git push -u origin name_new_branch

(name_new_branch, halimbawa: function)

6
06 дек. Ang sagot ay ibinigay Fadid 06 dec. 2016-12-06 21:42 '16 sa 21:42 2016-12-06 21:42

Ang pag-asa ng kaunti sa mga sagot dito, balot ko ang prosesong ito bi>

Ang isang mahalagang karagdagan para sa akin ay ito ay naghihikayat sa akin na magpatakbo ng mga pagsusulit ng yunit bago gumawa at ipinapasa sa kasalukuyang pangalan ng default branch.

 $ git_push_new_branch.sh Have you run your unit tests yet? If so, pass OK or a branch name, and try again usage: git_push_new_branch {OK|BRANCH_NAME} eg git_push_new_branch -> Displays prompt reminding you to run unit tests git_push_new_branch OK -> Pushes the current branch as a new branch to the origin git_push_new_branch MYBRANCH -> Pushes branch MYBRANCH as a new branch to the origin 

git_push_new_branch.sh

 function show_help() { IT=$(CAT <<EOF Have you run your unit tests yet? If so, pass OK or a branch name, and try again usage: git_push_new_branch {OK|BRANCH_NAME} eg git_push_new_branch.sh -> Displays prompt reminding you to run unit tests git_push_new_branch.sh OK -> Pushes the current branch as a new branch to the origin git_push_new_branch.sh MYBRANCH -> Pushes branch MYBRANCH as a new branch to the origin ) echo "$IT" exit } if [ -z "$1" ] then show_help fi CURR_BRANCH=$(git rev-parse --abbrev-ref HEAD) if [ "$1" == "OK" ] then BRANCH=$CURR_BRANCH else BRANCH=${1:-$CURR_BRANCH} fi git push -u origin $BRANCH 
1
21 апр. Ang sagot ay ibinigay kay Brad Parks Abril 21. 2017-04-21 16:30 '17 sa 4:30 pm 2017-04-21 16:30

Upang mai-load ang lokal na sangay ng pampublikong imbakan, kai>cd upang buksan ang nakabahaging repository, at pagkatapos ay gamitin ang sumusunod na code:

 git push -u origin branchname 
-8
26 июня '15 в 12:37 2015-06-26 12:37 ang sagot ay ibinigay ng shankar kumar Hunyo 26 '15 sa 12:37 2015-06-26 12:37

Iba pang mga katanungan tungkol sa mga o Magtanong ng isang Tanong