Cabang dari komit sebelumnya menggunakan git

Jika saya memiliki n komit, bagaimana saya bisa beralih dari komit n-3?

Saya melihat hash dari setiap commit.

1372
12 мая '10 в 10:21 2010-05-12 10:21 sedekah diatur pada 12 Mei, '10 pukul 10:21 2010-05-12 10:21
@ 15 jawaban

Anda dapat membuat cabang melalui hash:

 git branch branchname <sha1-of-commit> 

Atau menggunakan tautan simbolis:

 git branch branchname HEAD~3 

Untuk mengeluarkan cabang saat Anda membuatnya, gunakan

 git checkout -b branchname <sha1-of-commit or HEAD~3> 
1931
12 мая '10 в 10:24 2010-05-12 10:24 Balas diberikan oleh CB Bailey pada 12 Mei 10 di 10:24 2010-05-12 10:24

Untuk melakukan ini di github.com:

  1. Pergi ke proyek Anda.
  2. Klik pada "komit".
  3. Klik <> ("Lihat repositori pada titik ini dalam cerita") di komit yang ingin Anda cabut.
  4. Klik "tree: xxxxxx" di kiri atas. Tepat di bawah statistik bahasa, Anda akan mendapatkan opsi "Temukan atau buat cabang" (cukup masukkan nama baru cabang) 2019
192
09 авг. jawabannya diberikan oleh OneSolitaryNoob 09 Agustus. 2013-08-09 01:08 '13 pada 1:08 2013-08-09 01:08

Sihir dapat dilakukan menggunakan git reset .

  • Buat cabang baru dan alihkan ke sana (jadi semua komit terbaru Anda disimpan di sini)

    git checkout -b your_new_branch

  • Kembali ke cabang kerja Anda sebelumnya (misalkan dia master)

    git checkout master

  • Hapus fiksasi x terakhir, bersihkan master

    git reset --hard HEAD~x # in your case, x = 3

Mulai saat ini, semua komit terbaru x hanya ada di cabang baru, dan bukan di cabang kerja Anda sebelumnya (master).

60
03 авг. jawabannya diberikan oleh Jing Li 03 Agustus. 2015-08-03 12:04 '15 pada 12:04 2015-08-03 12:04

Jika Anda tidak tahu dengan komit mana Anda ingin bergabung dengan cabang, Anda dapat memeriksa perbaikannya dan memeriksa kode Anda (lihat sumber, kompilasi, periksa) di

 git checkout <sha1-of-commit> 

segera setelah Anda menemukan bahwa fiksasi yang ingin Anda razvetkit, Anda dapat melakukannya dari dalam fiksasi (yaitu, tidak kembali ke master pertama), cukup dengan membuat cabang dengan cara yang biasa:

 git checkout -b <branch_name> 
59
10 февр. jawabannya diberikan stanm 10 Feb. 2014-02-10 19:43 '14 pada 19:43 2014-02-10 19:43
 git checkout -b <branch-name> <sha1-of-commit> 
18
11 июля '17 в 10:11 2017-07-11 10:11 Jawaban diberikan oleh Tyler Long 11 Juli '17 di 10:11 2017-07-11 10:11

Cara cepat untuk melakukan ini di registri Github Anda adalah sebagai berikut:

  • Temukan perbaikan khusus dari utas Anda.
  • Di sebelah ID SHA, klik "Tinjauan Repo pada titik ini dalam riwayat"
  • Di sini Anda dapat membuat utas baru dari komit ini. 2019
14 янв. jawabannya diberikan oleh Vatsal Parekh 14 Januari. 2017-01-14 20:51 '17 pada 8:51 malam 2017-01-14 20:51

Untuk melakukan ini di Eclipse:

  • Pergi ke perspektif "Git Repository Exploring".
  • Luaskan "Tag" dan pilih komit yang ingin Anda buat cabang.
  • Klik kanan pada komit dan pilih "Buat cabang".
  • Tentukan nama cabang.

Ini akan membuat cabang lokal untuk Anda. Kemudian, ketika Anda mengirimkan perubahan, cabang Anda akan dikirim ke server jarak jauh.

4
17 мая '13 в 15:03 2013-05-17 15:03 jawabannya diberikan Saurabhcdt 17 Mei '13 pada 15:03 2013-05-17 15:03

Anda dapat melakukan ini di Stash.

  • Tekan komit
  • Di kanan atas layar, klik "Tandai komit ini"
  • Kemudian Anda bisa membuat cabang baru dari tag yang baru saja Anda buat.
4
18 янв. Balas diberikan oleh David Ruan 18 Jan 2017-01-18 20:20 '17 pada 8:20 malam 2017-01-18 20:20

Pertanyaan yang sangat bagus: bagaimana Anda memahami ini, menggunakan parameter --help untuk git? Mari kita coba ini:

 git branch --help 

Kami melihat kesimpulan ini:

 NAME git-branch - List, create, or delete branches SYNOPSIS git branch [--color[=<when>] | --no-color] [-r | -a] [--list] [-v [--abbrev=<length> | --no-abbrev]] [--column[=<options>] | --no-column] [(--merged | --no-merged | --contains) [<commit>]] [--sort=<key>] [--points-at <object>] [<pattern>...] git branch [--set-upstream | --track | --no-track] [-l] [-f] <branchname> [<start-point>] git branch (--set-upstream-to=<upstream> | -u <upstream>) [<branchname>] git branch --unset-upstream [<branchname>] git branch (-m | -M) [<oldbranch>] <newbranch> git branch (-d | -D) [-r] <branchname>... git branch --edit-description [<branchname>] 

Gobbledegook.

Cari kata "komit" dalam teks berikut. Kami menemukannya:

  <start-point> The new branch head will point to this commit. It may be given as a branch name, a commit-id, or a tag. If this option is omitted, the current HEAD will be used instead. 

Kami pergi ke suatu tempat!

Sekarang fokus pada baris buku gobbled ini:

 git branch [--set-upstream | --track | --no-track] [-l] [-f] <branchname> [<start-point>] 

Tambahkan ini ke yang berikut:

 git branch <branchname> [<start-point>] 

Dan selesai.

3
19 июля '16 в 19:35 2016-07-19 19:35 jawabannya diberikan kepada Purplejacket 19 Juli '16 pada 19:35 2016-07-19 19:35

Saya bisa melakukannya seperti ini:

 git branch new_branch_name 'git log -n 1 --skip 3 --format=%H' 

Di mana Anda harus memasukkan nilai lewati. 0 - terakhir, 1 - sebelumnya, 2 - komit sebelum itu, dll.

3
01 февр. Jawabannya diberikan oleh Mike Graf 01 Feb. 2013-02-01 00:36 '13 pada 0:36 2013-02-01 00:36

Inilah yang saya lakukan:

 C:\Users\[path]\build>git checkout -b responsivenavigation 8a75b001096536b3216022484af3026aa9c7bb5b Switched to a new branch 'responsivenavigation' C:\Users\jaimemontoya\Dropbox\CuponClub\androidapp\build>git branch master * responsivenavigation 

Dalam kasus ini, 8a75b001096536b3216022484af3026aa9c7bb5b adalah dan commit lama dimiliki oleh cabang master .

1
14 июня '18 в 11:23 2018-06-14 11:23 Jawaban diberikan oleh Jaime Montoya pada 14 Juni '18 pukul 11:23. 2018-06-14 11:23

Anda dapat membuat cabang menggunakan hash dari commit ini,

 git branch branchname <sha1 of the commit> 
1
15 июля '16 в 17:23 2016-07-15 17:23 jawabannya diberikan oleh user3022012 15 Juli '16 pada 17:23 2016-07-15 17:23

Pergi ke komit tertentu dari repositori git

Terkadang ketika bekerja dengan repositori git, Anda ingin kembali ke komit (revisi) tertentu untuk mendapatkan snapshot dari proyek Anda pada waktu tertentu. Untuk melakukan ini, Anda memerlukan hash SHA-1 dari komit, yang Anda dapat dengan mudah menemukan dengan memeriksa log dengan perintah:

 git log --abbrev-commit --pretty=oneline 

yang akan memberi Anda daftar ringkas semua komitmen dan versi pendek dari hash SHA-1.

Sekarang Anda tahu hash komit yang ingin Anda tuju, Anda dapat menggunakan salah satu dari 2 perintah berikut:

 git checkout HASH 

atau

 git reset --hard HASH 

lihat

git checkout <commit> <paths>

Memberitahu git untuk mengganti status lintasan saat ini dengan statusnya di komit ini. Path dapat berupa file atau direktori.

Jika tidak ada cabang yang ditentukan, git menerima komit HEAD.

 git checkout <path> // restores path from your last commit. It is a 'filesystem-undo'. 

Jika path tidak ditentukan, git memindahkan HEAD ke komit yang diberikan (dengan demikian mengubah komit yang Anda duduki dan kerjakan).

 git checkout branch //means switching branches. 

atur u>

 git reset <commit> //re-sets the current pointer to the given commit. 

Jika Anda menggunakan cabang (seperti biasanya), HEAD dan cabang ini dipindahkan untuk melakukan.

Jika Anda dalam kondisi HEAD dinonaktifkan, git reset hanya memindahkan HEAD . Untuk mengatur u>

Jika Anda ingin tahu lebih banyak tentang perbedaan antara git reset dan checkout git, saya akan merekomendasikan membaca blog git resmi .

0
20 июля '18 в 18:47 2018-07-20 18:47 Jawaban diberikan oleh Lyes CHIOUKH 20 Juli, '18 pada 18:47 2018-07-20 18:47
28 авг. jawabannya diberikan oleh user3070485 28 Agustus. 2018-08-28 15:04 '18 pada 15:04 2018-08-28 15:04

Jalankan saja:

 git checkout -b branch-name <commit> 

Sebagai contoh:

 git checkout -b import/january-2019 1d0fa4fa9ea961182114b63976482e634a8067b8 

Perintah checkout dengan opsi -b akan membuat cabang baru dan mengalihkan Anda ke sana.

0
11 янв. jawabannya diberikan d1jhoni1b 11 Januari 2019-01-11 01:35 '19 pada 1:35, 2019-01-11 01:35

Pertanyaan lain tentang atau Ajukan Pertanyaan