Saya membuat sebuah cabang lokal yang ingin saya 'push' hulu. Ada pertanyaan serupa di sini di Stack Overflow pada bagaimana untuk melacak yang baru dibuat cabang terpencil.
Namun, alur kerja saya adalah sedikit berbeda. Pertama saya ingin membuat sebuah cabang lokal, dan aku hanya akan mendorong hulu ketika saya'm puas dan ingin berbagi cabang saya.
UPDATE Dengan Git 2.0 ada jawaban sederhana aku telah tertulis di bawah ini: https://stackoverflow.com/a/27185855/109305
Pertama, anda membuat cabang lokal:
git checkout -b <branch-name> # Create a new branch and check it out
Remote branch dibuat secara otomatis ketika anda push ke remote server. Jadi, ketika anda merasa siap untuk itu, anda hanya dapat melakukan:
git push <remote-name> <branch-name>
Di mana <remote-nama>
biasanya asal
, nama yang git memberikan ke remote anda kloning dari. Rekan anda akan kemudian hanya menarik yang cabang, dan's otomatis dibuat secara lokal.
Namun perlu dicatat bahwa secara formal, format:
git push <remote-name> <local-branch-name>:<remote-branch-name>
Tapi ketika anda mengabaikan salah satu, ia menganggap kedua cabang nama yang sama. Setelah mengatakan ini, seperti kata-kata perhatian, jangan membuat kesalahan kritis yang menentukan hanya :<remote-cabang-nama>
(dengan usus besar), atau remote cabang akan dihapus!
Jadi yang berikutnya git pull
akan tahu apa yang harus dilakukan, anda mungkin ingin menggunakan:
git push --set-upstream <remote-name> <local-branch-name>
Seperti yang dijelaskan di bawah ini, --set-hulu
pilihan set up hulu cabang:
Untuk setiap cabang yang lebih up to date atau berhasil mendorong, tambahkan hulu (tracking) referensi, digunakan oleh argumen-kurang git-tarik(1) dan lainnya perintah.
Pertama, anda harus membuat cabang lokal
git checkout -b your_branch
Setelah itu, anda dapat bekerja secara lokal di cabang anda, ketika anda siap untuk berbagi cabang, mendorong itu. Perintah selanjutnya mendorong cabang ke remote repository asal dan trek itu
git push -u origin your_branch
Rekan-rekan dapat menghubungi cabang anda, dengan melakukan:
git fetch
git checkout origin/your_branch
Anda dapat terus bekerja di cabang dan mendorong kapanpun anda inginkan tanpa argumen untuk git push (argumentless git push akan mendorong guru untuk remote master, your_branch lokal ke remote your_branch, dll...)
git push
Rekan-rekan dapat mendorong ke cabang anda dengan melakukan melakukan dan kemudian mendorong secara eksplisit
... work ...
git commit
... work ...
git commit
git push origin HEAD:refs/heads/your_branch
Atau pelacakan cabang untuk menghindari argumen untuk git push
git checkout --track -b your_branch origin/your_branch
... work ...
git commit
... work ...
git commit
git push
Sebagai Git 2.0 perilaku telah menjadi lebih sederhana:
Anda dapat mengkonfigurasi git dengan push.default = arus
untuk membuat hidup lebih mudah:
Saya menambahkan ini jadi sekarang saya hanya bisa mendorong cabang baru hulu dengan
$ git push -u
-u
akan melacak branch jauh dari nama yang sama. Sekarang dengan konfigurasi ini anda akan auto-kira remote referensi untuk git push. Dari git.config dokumentasi:
push.default
Mendefinisikan tindakan git push harus mengambil jika tidak ada refspec secara eksplisit diberikan.
push.default = arus
- push cabang saat ini untuk memperbarui cabang dengan nama yang sama pada ujung penerima. Bekerja di pusat maupun non-central alur kerja.
Bagi saya, ini adalah sebuah penyederhanaan dari saya sehari-hari Git alur kerja. Konfigurasi pengaturan mengurus 'biasa' use case di mana anda menambahkan sebuah cabang lokal dan ingin membuat jarak jauh. Juga, saya dapat dengan mudah membuat cabang-cabang lokal dari remote dengan hanya melakukan git co remote_branch_name
(sebagai lawan untuk menggunakan --set-hulu-untuk
bendera).
Saya tahu ini pertanyaan dan menerima jawaban yang agak tua, tapi perilaku telah berubah sehingga sekarang pilihan konfigurasi yang ada untuk membuat alur kerja anda lebih sederhana.
Untuk menambah global Git konfigurasi, jalankan pada command line:
$ git config --global push.default current
Seperti yang tercantum dalam jawaban sebelumnya,
git push <remote-name> <local-branch-name>:<remote-branch-name>
ini cukup untuk mendorong cabang lokal.
Rekan anda, dapat menarik semua remote cabang (termasuk yang baru) dengan perintah ini:
git remote update
Kemudian, untuk membuat perubahan pada cabang, aliran biasa:
git checkout -b <local-branch-name> <remote-name>/<remote-branch-name>
Buat cabang baru berbasis lokal pada saat ini cabang:
git checkout -b newbranch
Melakukan perubahan apapun seperti biasanya. Kemudian, dorong hulu:
git push -u origin HEAD
Ini adalah cara pintas untuk mendorong arus cabang ke cabang dengan nama yang sama pada asal
dan melacak sehingga anda don't perlu menentukan asal KEPALA
di masa depan.
Jika anda ingin membuat cabang dari cabang saat ini
git checkout -b {your_local_branch_name}
anda ingin sebuah cabang dari cabang terpencil, anda dapat mencoba
git checkout -b {your_local_branch_name} origin/<remote_branch_name>
Jika anda selesai dengan perubahan anda dapat menambahkan file.
git add -A or git add <each_file_names>
Maka jangan melakukan secara lokal
git commit -m 'your commit message'
Bila anda ingin push ke remote repo
git push -u origin <your_local_branch_name>
Semua bersama-sama akan
git checkout -b bug_fixes
atau Jika anda ingin membuat cabang dari cabang terpencil mengatakan pengembangan
git checkout -b bug_fixes asal/pengembangan
Anda dapat mendorong ke cabang untuk remote repo oleh
git push -u origin bug_fixes
Kapan saja anda ingin memperbarui cabang dari cabang lain mengatakan master.
git pull asal master
.
Jika anda ingin benar-benar hanya membuat remote branch tanpa memiliki satu lokal, anda dapat melakukannya seperti ini:
git push origin HEAD:refs/heads/foo
Hal itu mendorong apapun yang anda KEPALA ke cabang foo yang tidak ada pada remote.
Solusi termudah... Drumm Roll... git versi 2.10.1 (Apple Git-78)
1) git checkout -b localBranchNameThatDoesNotExistInRemote
2) Do your changes, and do a git commit
3) git push origin localBranchNameThatDoesNotExistInRemote --force
N. B. - cabang yang baru saja anda buat dalam lingkungan lokal anda, dan remote tidak ada cabang di mana anda mencoba untuk mendorong, harus memiliki nama yang sama.
Pertama anda membuat cabang lokal:
git checkout -b your_branch
Dan kemudian untuk membuat cabang dari jarak jauh:
git push --set-upstream origin your_branch
Catatan: Ini tidak bekerja pada versi latests dari git:
$ git --version
git version 2.3.0
Cheers!
Membuat cabang di komputer lokal anda dan beralih di cabang ini :
$ git checkout -b [name_of_your_new_branch]
Mendorong cabang di github :
$ git push origin [name_of_your_new_branch]
Ketika anda ingin melakukan sesuatu di cabang anda, pastikan untuk berada di cabang anda.
Anda dapat melihat semua cabang yang dibuat dengan menggunakan :
$ git branch
Yang akan menampilkan :
* approval_messages
master
master_clean
Tambahkan remote baru untuk cabang anda :
$ git remote add [name_of_your_remote]
Mendorong perubahan dari anda melakukan ke cabang anda :
$ git push origin [name_of_your_remote]
Update cabang anda ketika original cabang dari repositori resmi telah diperbarui :
$ git fetch [name_of_your_remote]
Kemudian anda harus mendaftar untuk menggabungkan perubahan, jika anda branch adalah turunan dari mengembangkan yang perlu anda lakukan :
$ git merge [name_of_your_remote]/develop
Menghapus sebuah cabang lokal anda filesystem :
$ git branch -d [name_of_your_new_branch]
Untuk memaksa penghapusan cabang lokal anda filesystem :
$ git branch -D [name_of_your_new_branch]
Menghapus cabang di github :
$ git push origin :[name_of_your_new_branch]
Menciptakan sebuah cabang lokal dari yang sudah ada cabang (dapat master/ mengembangkan/ setiap-lain-lain-cabang).
git checkout -b branch_name
Mendorong ini untuk remote
git push-u remote_name local_branch_name:remote_branch_name
Di sini,
Jika kita menghapus lokal dan remote branch nama-nama, itu akan memiliki format
git push-u remote_name branch_name
Hal ini akan mendorong cabang lokal ke remote dan dengan nama yang sama seperti cabang lokal branch_name. Cabang lokal akan melacak cabang terpencil juga.
Aku tahu pertanyaan ini dijawab dengan baik, tapi hanya ingin daftar langkah-langkah yang saya ambil untuk membuat cabang baru "myNewBranch" dan push ke remote ("asal" dalam kasus saya) dan menyiapkan pelacakan. Pertimbangkan ini "TL;DR" versi :)
# create new branch and checkout that branch
git checkout -b myNewBranch
# now push branch to remote
git push origin myNewBranch
# set up the new branch to track remote branch from origin
git branch --set-upstream-to=origin/myNewBranch myNewBranch
Anda dapat melakukannya dalam 2 steeps:
1. Gunakan checkout
untuk membuat cabang lokal:
git checkout -b yourBranchName
2. Gunakan push
perintah untuk autocreate cabang dan mengirim kode ke remote repository:
git push -u origin yourBanchName
Ada beberapa cara untuk melakukan hal ini, tetapi saya berpikir bahwa cara ini benar-benar sederhana.
Hanya ingin menambahkan bahwa sementara:
git checkout -b {branchName}
Menciptakan cabang baru, hal ini juga memeriksa bahwa cabang / membuat anda saat ini cabang. Jika, untuk beberapa alasan, semua yang anda ingin lakukan adalah snap off cabang tetapi tidak membuat anda saat ini cabang, maka anda akan menggunakan perintah berikut:
git branch {branchName}
Dalam perintah pertama, "checkout" membuat kata branch anda saat ini cabang, dan " b" artinya: cabang ini doesn't ada lagi, sehingga membuatnya bagi saya.
Cara melakukan melalui Sumber Pohon
1: Open SourceTree, click on Repository -> Checkout
2 :Click on Create New Branch
3: Select branch where from you want to get code for new branch
4: Give your branch name
5: Push the branch (by click on Push button)
git push-u <remote-nama> <cabang-nama>
doesn't bekerja jika baru dibuat cabang isn't melahirkan dari repo, yaitu jika anda ingin't menciptakan cabang baru menggunakan git checkout -b new_branch`, maka ini tidak akan bekerja.
Misalnya, saya punya kloning dua repositori lokal dan aku harus copy repo2/branch1 untuk repo1/ dan kemudian mendorong itu juga.
Ini link membantu saya mendorong saya cabang lokal (kloning dari yang lain repo) untuk remote repo:
Berikut adalah bagaimana anda melakukannya di eclipse melalui Egit.
Pergi "Repositori Git Menjelajahi" melihat dan expland git proyek yang anda ingin membuat cabang. Di bawah Cabang -> Lokal .. pilih cabang yang anda inginkan untuk membuat cabang ( Dalam kasus saya, saya memilih master .. anda bisa pilih lain lain cabang jika anda ingin) .. kemudian klik kanan dan klik Buat Cabang pilihan .. dan pilih checkout proyek ini pilihan, dan kemudian klik tombol finish.
Sekarang dari project explorer pilih proyek .. klik kanan kemudian Tim -> Mendorong Cabang.
Remote baru cabang yang akan dibuat. Anda dapat memberikan nama cabang ke rekan anda sehingga mereka bisa melakukannya.
Saya menggunakan ini dan itu cukup berguna:
git config --global alias.mkdir '!git checkout -b $1; git status; git push -u origin $1; exit;'
Penggunaan: git mkdir NEW_BRANCH
Anda don't bahkan perlu git status; mungkin, aku hanya ingin memastikan semuanya berjalan dengan baik...
Anda dapat memiliki BAIK LOKAL dan REMOTE cabang dengan satu perintah.