Bagaimana saya bisa meminta git untuk mencari tahu cabang mana yang berisi komit yang diberikan? gitk
biasanya akan mendaftar cabang, kecuali ada terlalu banyak, dalam hal ini hanya mengatakan "banyak (38)" atau sesuatu seperti itu. Saya perlu tahu daftar lengkapnya, atau setidaknya apakah cabang tertentu mengandung komit.
git
version-control
Andrew Arnott
sumber
sumber
Jawaban:
Dari halaman manual git-branch :
Daftar cabang pelacakan jarak jauh juga (seperti yang disebutkan dalam jawaban user3941992 di bawah) yaitu "cabang lokal yang memiliki hubungan langsung dengan cabang jauh".
Lihat juga artikel git ready ini.
Catatan: jika komit ada di cabang pelacakan jarak jauh , tambahkan
-a
opsi .(seperti komentar MichielB di bawah )
MatrixFrog berkomentar bahwa itu hanya menunjukkan cabang yang berisi komit yang tepat .
Jika Anda ingin tahu cabang mana yang berisi komit "ekivalen" (mis. Cabang mana yang sudah memilih cherry yang komit) itu
git cherry
:(Di sini, komit bertanda '
-
' tidak akan munculgit cherry
, artinya sudah ada<upstream>
.)sumber
tests
danmaster
-master
adalah cabang saat ini, oleh karena itu tanda bintang.git cherry
: "Karena git ceri membandingkan perubahan daripada komit (sha1), Anda bisa menggunakan git ceri untuk mencari tahu jika komit yang Anda buat secara lokal telah diterapkan <upstream> di bawah id komit yang berbeda. Misalnya, ini akan terjadi jika Anda memberi makan tambalan <upstream> melalui email daripada mendorong atau menarik komit secara langsung. " kernel.org/pub/software/scm/git/docs/git-cherry.html-a
parameter untuk juga memeriksa cabang jarak jauh.git tag --contains <commit>
. Lihat Mencari semua tag yang mengandung komit? .git cherry
bagian @UpAndAdam mengajukan pertanyaan di sini: stackoverflow.com/questions/16304574/… , sayangnya, pertanyaannya belum dijawab.Anda dapat menjalankan:
Dari komentar komit terakhir dalam output, Anda dapat menemukan nama cabang asli
Contoh:
sumber
git log <SHA1>..master --ancestry-path --merges --oneline | tail -n1
mendapatkan ini dalam satu barisgit log <SHA1>..master --ancestry-path --merges --oneline -1
A..B
melakukan rentang komit, hanya saja jangan gunakan rentang seperti begitu ::git log HEAD --oneline -1
>82c12a9 (HEAD, origin/remote-branch-name, origin/master, origin/dev, origin/HEAD, master, dev) commit message
.master
selalu lebih disukai jika ada dalam daftar ini . Dari situ kurang jelas. Anda bisa mencoba dan membaca cabang git dari file .gitmodules:git config -f .gitmodules submodule.src/foo/submodule.branch
. Ini bisa menjadi fork / pr lama berdiri. Anda dapat cd untuk melakukan repo root dan menjalankangit config submodule.src/foo/submodule.branch
. Anda juga dapat menggunakan cabang git superprojects saat ini.git config submodule.src/foo/submodule.branch
Dapat dipengaruhi oleh berbagai konfigurasi git, termasuk file .gitconfig repo-lokal. (wajib berlarigit config --local include.path ./path/to/your/.gitconfig
)