Bagaimana cara beralih kembali ke 'master' dengan git?

135

Saya telah membuat komitmen pertama saya; kemudian membuat cabang (katakanlah branch1).

Di cabang ini saya telah membuat direktori 'contoh' dan berkomitmen. Di GitHub saya melihat cabang baru saya dan direktori baru 'contoh' yang telah saya tambahkan.

Sekarang saya bertanya-tanya bagaimana saya bisa 'menyinkronkan' kembali ke master; dan jadi 'folder' contoh dihapus (karena tidak ada pada master).

EDIT: find . -type d -empty -exec touch {}/.gitignore \; melakukan pekerjaan.

Disko
sumber

Jawaban:

239

Anda perlu checkout cabang:

git checkout master

Lihat lembar cheat Git untuk informasi lebih lanjut.

Sunting: Harap dicatat bahwa git tidak mengelola direktori kosong, jadi Anda harus mengelolanya sendiri. Jika direktori Anda kosong, hapus saja secara langsung.

Matthew Farwell
sumber
"Sudah di master" tetapi direktori 'contoh' saya masih ada. Saya ingin menyelaraskan dengan master (sehingga tidak memiliki folder ini karena tidak ada di cabang master)
Disco
# Pada cabang master tidak ada yang berkomitmen (direktori kerja bersih)
Disco
@Disco: Saya pernah mengalami masalah ini sebelumnya - jika sudah pasti tidak dilacak dalam indeks, Anda cukup menghapus direktori secara lokal dan Anda akan mendapatkannya kembali ketika Anda git checkout branch1.
Platinum Azure
1
Mmmh terlalu buruk; tidak adakah pilihan untuk itu? Saya tidak dapat melacak direktori yang ada di kepala saya
Disco
6

Menurut Git Cheatsheet, Anda harus membuat cabang terlebih dahulu

git branch [branchName]

lalu

git checkout [branchName]
blacksta500
sumber
2
saya pikir Anda bisa memeriksa pertanyaan lagi
eli
2

Untuk menghapus cabang, Anda harus menyimpan perubahan yang dibuat pada cabang atau Anda perlu melakukan perubahan yang Anda buat pada cabang. Ikuti langkah-langkah di bawah ini jika Anda membuat perubahan di cabang saat ini.

  1. git stash atau git commit -m "XXX"
  2. git checkout master
  3. git branch -D merchantApi

Catatan: Langkah-langkah di atas akan menghapus cabang secara lokal.

Sachin Sridhar
sumber
1

Saya mencoba memilah apa yang terjadi di sana. Apakah ada sesuatu di folder "contoh" Anda? Git tidak melacak folder kosong.

Jika Anda bercabang dan beralih ke cabang baru Anda kemudian membuat folder baru dan membiarkannya kosong, dan kemudian melakukan "git commit -a", Anda tidak akan mendapatkan folder baru itu di komit.

Yang berarti tidak terlacak, yang berarti memeriksa cabang lain tidak akan menghapusnya.

Dan Ray
sumber
git init'ed direktori saya (/ home / dev) maka saya melakukan "commit -a" dan mendorong ke github. Kemudian saya membuat cabang baru; buat direktori 'contoh' dengan beberapa file di dalam dan melakukan cabang. Sekarang saya ingin kembali ke tahap awal (master) tanpa direktori 'contoh' yang telah saya buat di cabang baru.
Disko
juga di cabang master direktori 'contoh' tidak ada di sana (seperti yang saya lihat di github)
Disco
pembaruan: saya punya satu folder kosong di dalam direktori contoh; Apakah ini sebabnya masih menunjukkan saya direktori? Bagaimana cara menghilangkannya menggunakan git
Disco
Kamu tidak. git tidak tahu tentang itu. Hapus saja. Memeriksa master harus menghapus semua file yang ada di cabang tetapi tidak di master dari direktori kerja Anda.
Dan Ray
1

Akan membawa Anda ke cabang utama.

git checkout master

Untuk beralih ke cabang lain lakukan (abaikan tanda kurung siku, itu hanya untuk tujuan penekanan)

git checkout [the name of the branch you want to switch to]

Untuk membuat cabang baru, gunakan -b seperti ini (abaikan tanda kurung siku, itu hanya untuk tujuan penekanan)

git checkout -b [the name of the branch you want to create]

Dapo Momodu
sumber