Jadi saya punya repositori git yang saya kloning dari sumber upstream di ghithub. Saya membuat beberapa perubahan untuk itu (yang tidak terikat dan di cabang master). Yang ingin saya lakukan adalah mendorong perubahan saya ke halaman github saya sebagai cabang baru dan memiliki github masih melihatnya sebagai garpu.
Apakah itu mungkin? Saya cukup baru untuk git dan github. Apakah pertanyaan saya masuk akal?
Cara termudah yang bisa saya pikirkan (yang saya yakin adalah cara yang paling sekitar), adalah dengan garpu repo di github. Kloning secara lokal ke direktori yang berbeda. Tambahkan repo asal hulu. Buat cabang di repo bercabang baru itu. Salin perubahan kode saya dengan tangan ke repo lokal baru. Dan kemudian dorong kembali ke github saya.
Apakah ini kasus penggunaan umum bahwa ada cara yang lebih sederhana untuk melakukannya tanpa menduplikasi direktori?
Saya kira saya bertanya di sini sebagai lawan SO karena saya di linux menggunakan command line git dan orang-orang di sini memberikan jawaban yang lebih baik imo =]
sumber
Jawaban:
Anda dapat melakukan semuanya dari repositori yang ada (tidak perlu mengkloning garpu ke repositori baru (lokal), membuat cabang, menyalin komit / perubahan, dll.).
Siapkan komitmen Anda untuk dipublikasikan.
Perbaiki setiap komit lokal yang ada (mis. Dengan
git commit --amend
dan / ataugit rebase --interactive
).Komit setiap perubahan tanpa komitmen yang ingin Anda publikasikan (saya tidak yakin jika Anda bermaksud menyatakan bahwa Anda memiliki beberapa komitmen pada master lokal Anda dan beberapa perubahan tanpa komitmen, atau hanya beberapa perubahan tanpa komitmen, secara kebetulan, perubahan tanpa komitmen tidak "berdasarkan cabang ", mereka benar-benar di pohon kerja Anda).
Ganti nama cabang master Anda untuk memberikannya nama yang Anda inginkan untuk "cabang baru" Anda. Ini tidak sepenuhnya diperlukan (Anda dapat mendorong dari cabang mana saja ke cabang lain), tetapi mungkin akan mengurangi kebingungan dalam jangka panjang jika cabang lokal Anda dan cabang di garpu GitHub Anda memiliki nama yang sama.
Garpu repositori GitHub hulu
(mis.)
github.com:UpstreamOwner/repostory_name.git
Sebagai(mis)
github.com:YourUser/repository_name.git
.Ini dilakukan di situs web GitHub (atau "klien" yang menggunakan API GitHub), tidak ada perintah Git lokal yang terlibat.
Di repositori lokal Anda (yang semula dikloning dari repositori GitHub hulu dan memiliki perubahan pada masternya ), tambahkan repositori garpu Anda sebagai remote:
Dorong cabang Anda ke gudang garpu di GitHub.
Secara opsional, ganti nama remote sehingga garpu Anda dikenal sebagai "asal" dan hulu sebagai "hulu".
Salah satu alasan untuk mengubah nama remote adalah karena Anda ingin dapat menggunakan
git push
tanpa menentukan repositori (defaultnya adalah “origin”).sumber
-u
opsi dapat membuat cabang lokal Andamy-feature
melacak cabang jarak jauh yang samaorigin/my-feature
. Perintahnya adalah:git push -u github my-feature
Ada alat:
hub
Sekarang kamu bisa:
sumber