Hen├╝z itilmemi┼č Git bir birle┼čtirmesini geri al


Al─▒nan cevaba git


Ana ┼čubemde git merge some-other-branch yerel olarak yapt─▒m , ancak hi├žbir zaman k├Âkeni master'a getirmedim. Birle┼čmek istemedim, bu y├╝zden geri almak istiyorum. Birle┼čmemden git status sonra, ┼ču mesaj─▒ al─▒yordum:

 # On branch master
# Your branch is ahead of 'origin/master' by 4 commits.
 

Buldu─čum baz─▒ talimatlara g├Âre ko┼čmay─▒ denedim

 git revert HEAD -m 1
 

ama ┼čimdi bu mesaj─▒ al─▒yorum git status :

 # On branch master
# Your branch is ahead of 'origin/master' by 5 commits.
 

┼×ubemin herhangi bir say─▒da komisyonun ├Ân├╝nde olmas─▒n─▒ istemiyorum. Bu noktaya nas─▒l geri d├Ânebilirim?


3628









Cevap say─▒s─▒n─▒ say: 30






─░le git reflog bir ├Ânceki birle┼čtirme oldu─čunu taahh├╝t ├žek ( git reflog daha iyi bir se├ženek olacakt─▒r git log ). Sonra kullanarak s─▒f─▒rlayabilirsiniz:

 git reset --hard commit_sha
 

Ba┼čka bir yol daha var:

 git reset --hard HEAD~1
 

Seni 1 i┼čine geri d├Ând├╝recek.

De─či┼čtirilmi┼č ve kaydedilmemi┼č / denetlenmemi┼č dosyalar─▒n de─či┼čtirilmemi┼č durumlar─▒na s─▒f─▒rlanaca─č─▒n─▒ unutmay─▒n . Onlar─▒ saklamak ya da uzakla┼čmak i├žin ya da a┼ča─č─▒daki --merge se├žene─če bak─▒n.


@Velmont, cevab─▒nda a┼ča─č─▒da ├Ânerildi─či gibi, bu do─črudan davada:

 git reset --hard ORIG_HEAD
 

de─či┼čikliklerinizi koruman─▒z gerekti─či i├žin daha iyi sonu├žlar verebilir. ORIG_HEAD do─črudan birle┼čme ger├žekle┼čmeden ├Ânce bir taahh├╝de i┼čaret edecektir, bu y├╝zden kendiniz avlamak zorunda de─čilsiniz.


Ba┼čka bir ipucu, gereksiz yere dosyalar─▒ s─▒f─▒rlamad─▒─č─▒ndan , --merge anahtar─▒ kullanmakt─▒r --hard :

 git reset --merge ORIG_HEAD
 

--merge

Dizini s─▒f─▒rlar ve ├žal─▒┼čma a─čac─▒ndaki <commit> ve HEAD aras─▒nda farkl─▒ olan dosyalar─▒ g├╝nceller, ancak dizin ile ├žal─▒┼čma a─čac─▒ aras─▒nda farkl─▒ olanlar─▒ (yani eklenmemi┼č de─či┼čiklikleri olan) tutar.


4076







Yerel efendinizin men┼če / efendinin ├Ân├╝nde olmad─▒─č─▒n─▒ varsayal─▒m.

 git reset --hard origin/master
 

O zaman yerel master ┼čubeniz ile ayn─▒ g├Âr├╝nmelisiniz origin/master .


1397







Bkz Git kitapta b├Âl├╝m 4 ve Linus Torvalds taraf─▒ndan orijinal yay─▒ndan .

Daha ├Ânce itilmi┼č olan bir birle┼čtirme i┼člemini geri almak i├žin :

 git revert -m 1 commit_hash
 

Linus'un dedi─či gibi, dal─▒ tekrar i┼čliyorsan─▒z geri ald─▒─č─▒n─▒zdan emin olun.


1147







En basit komutun eksik olmas─▒ garip. ├ço─ču cevap i┼če yar─▒yor, ancak az ├Ânce yapt─▒─č─▒n─▒z birli─či geri almak, bu kolay ve g├╝venli bir yoldur :

 git reset --merge ORIG_HEAD
 

Ref ORIG_HEAD , birle┼čmeden ├Ânceki orijinal taahh├╝tlere i┼čaret edecektir.

( --merge Se├žene─čin birle┼čtirme ile ilgisi yoktur. Aynen oldu─ču gibi git reset --hard ORIG_HEAD , ancak kabul edilmeyen de─či┼čikliklere dokunmad─▒─č─▒ndan daha g├╝venlidir.)


953







Daha yeni Git s├╝r├╝mlerinde, hen├╝z birle┼čtirme i┼čleminde bulunmad─▒ysan─▒z ve bir birle┼čtirme ├žat─▒┼čmas─▒ ya┼č─▒yorsan─▒z, a┼ča─č─▒dakileri yapabilirsiniz:

 git merge --abort
 

Kimden man git merge :

[Bu] yaln─▒zca birle┼čtirme ├žat─▒┼čmalarla sonu├žland─▒ktan sonra ├žal─▒┼čt─▒r─▒labilir. git merge --abort Birle┼čtirme i┼člemini iptal edecek ve birle┼čtirme ├Âncesi durumu yeniden kurmaya ├žal─▒┼čacakt─▒r.


362







Bir ├Ânceki g├Âreve s─▒f─▒rlaman─▒z gerekir. Bu ├žal─▒┼čmal─▒:

 git reset --hard HEAD^
 

Veya HEAD^^ bu geri d├Ân├╝┼č taahh├╝d├╝n├╝ geri almak i├žin bile . Ka├ž ad─▒m atman─▒z gerekti─činden emin de─čilseniz, her zaman tam bir SHA referans─▒ verebilirsiniz.

Sorun ya┼čarsan─▒z ve ana ┼čubenizde yerel de─či┼čiklikler olmad─▒ysa, s─▒f─▒rlayabilirsiniz origin/master .


126


2010-03-05





Son zamanlarda, git reflog bu konuda yard─▒mc─▒ olmak i├žin kullan─▒yorum . Bu ├žo─čunlukla, yaln─▒zca birle┼čtirme SADECE ger├žekle┼čirse ├žal─▒┼č─▒r ve makinenizdeydi.

git reflog gibi bir ┼čey d├Ând├╝rebilir:

 fbb0c0f [email protected]{0}: commit (merge): Merge branch 'master' into my-branch
43b6032 [email protected]{1}: checkout: moving from master to my-branch
e3753a7 [email protected]{2}: rebase finished: returning to refs/heads/master
e3753a7 [email protected]{3}: pull --rebase: checkout e3753a71d92b032034dcb299d2df2edc09b5830e
b41ea52 [email protected]{4}: reset: moving to HEAD^
8400a0f [email protected]{5}: rebase: aborting
 

─░lk sat─▒r bir birle┼čme oldu─čunu g├Âsterir. ─░kinci sat─▒r birle┼čmemden ├Ânceki zaman. Ben sadece git reset --hard 43b6032 bu ┼čubeyi birle┼čmeden ├Ânce takip etmeye ve devam ettirmeye zorlad─▒m.


84







Modern Git ile ┼čunlar─▒ yapabilirsiniz:

 git merge --abort
 

Daha eski s├Âzdizimi:

 git reset --merge
 

Eski okul:

 git reset --hard
 

Ama asl─▒nda, buna de─čer fark oldu─čunu git merge --abort sadece e┼čde─čer git reset --merge g├Âz ├Ân├╝ne al─▒nd─▒─č─▒nda MERGE_HEAD mevcuttur. Bu, birle┼čtirme komutunun Git yard─▒m─▒ndan okunabilir.

 git merge --abort is equivalent to git reset --merge when MERGE_HEAD is present.
 

Ba┼čar─▒s─▒z bir birle┼čtirme i┼čleminden sonra, hay─▒r oldu─čunda MERGE_HEAD ba┼čar─▒s─▒z birle┼čtirme i┼člemi geri al─▒nabilir git reset --merge , ancak zorunlu olarak yap─▒lmayabilir git merge --abort , bu nedenle ayn─▒ ┼čey i├žin yaln─▒zca eski ve yeni s├Âzdizimi de─čildir .

┼×ahsen git reset --merge g├╝nl├╝k i┼člerimde ├žok daha g├╝├žl├╝ ve kullan─▒┼čl─▒ buluyorum , bu y├╝zden her zaman kulland─▒─č─▒m ┼čey bu.


50







Tamam, buradaki di─čer insanlar─▒n bana verdi─či cevaplar ├žok yak─▒nd─▒, ama i┼če yaramad─▒. ─░┼čte yapt─▒─č─▒m ┼čey.

Bunu yap─▒yorum ...

 git reset --hard HEAD^
git status
 

... bana ┼ču durumu verdi.

 # On branch master
# Your branch and 'origin/master' have diverged,
# and have 3 and 3 different commit(s) each, respectively.
 

Daha sonra git reset birka├ž kez daha ayn─▒ komutu yazmam gerekti. Bunu her yapt─▒─č─▒mda, mesaj a┼ča─č─▒da g├Âr├╝ld├╝─č├╝ gibi de─či┼čti.

 > git reset --hard HEAD^
HEAD is now at [...truncated...]
> git status
# On branch master
# Your branch and 'origin/master' have diverged,
# and have 3 and 3 different commit(s) each, respectively.
> git reset --hard HEAD^
HEAD is now at [...truncated...]
> git status
# On branch master
# Your branch and 'origin/master' have diverged,
# and have 2 and 3 different commit(s) each, respectively.
> git reset --hard HEAD^
HEAD is now at [...truncated...]
> git status
# On branch master
# Your branch and 'origin/master' have diverged,
# and have 1 and 3 different commit(s) each, respectively.
> git reset --hard HEAD^
HEAD is now at [...truncated...]
> git status
# On branch master
# Your branch is behind 'origin/master' by 3 commits, and can be fast-forwarded.
 

Bu noktada durum mesaj─▒n─▒n de─či┼čti─čini g├Ârd├╝m, bu y├╝zden bir ┼čey yapmaya ├žal─▒┼čt─▒m git pull ve bu i┼če yaram─▒┼č gibi g├Âr├╝n├╝yordu:

 > git pull
Updating 2df6af4..12bbd2f
Fast forward
 app/views/truncated |    9 ++++++---
 app/views/truncated |   13 +++++++++++++
 app/views/truncated |    2 +-
 3 files changed, 20 insertions(+), 4 deletions(-)
> git status
# On branch master
 

├çok uzun laf─▒n k─▒sas─▒, komutlar─▒m ┼čunun ├╝zerine geldi:

 git reset --hard HEAD^
git reset --hard HEAD^
git reset --hard HEAD^
git reset --hard HEAD^
git pull
 

36







git reflog ├ľnceki ├Âdemeyi bulmak i├žin kullanabilirsiniz . Bazen bu, geri d├Ânmek istedi─čin iyi bir durum.

somut olarak,

 $ git reflog
$ git reset --hard [email protected]{0}
 

22







Birle┼čmenin ortas─▒ndaysan─▒z, her zaman iptal edebilirsiniz git merge --abort


17







Hen├╝z taahh├╝t etmediyseniz, yaln─▒zca kullanabilirsiniz

 $ git checkout -f
 

Birle┼čmeyi (ve yapt─▒─č─▒n─▒z her ┼čeyi) geri al─▒r.


13







Bu soruya, ayr─▒ca orijini e┼čle┼čtirmek i├žin geri d├Ânme aray─▒┼č─▒ da geldi (yani NO, orijini ger├žekle┼čtirmedi─čini taahh├╝t eder). Daha fazla ara┼čt─▒rma yapmak, reset tam olarak bunun i├žin bir emir oldu─čunu buldu:

git reset --hard @{u}

Not: @{u} i├žin stenodir origin/master . (Ve elbette, bunun ├žal─▒┼čmas─▒ i├žin o uzak havuza ihtiyac─▒n─▒z var.)


13







Bu sorunu bir i┼člem kimli─či aramaktan ibaret olmayan tek bir komutla ├ž├Âzebildim.

 git reset --hard remotes/origin/HEAD
 

Kabul edilen cevap benim i├žin i┼če yaramad─▒, ancak bu komut arad─▒─č─▒m sonu├žlar─▒ verdi.


11







Sadece bakmak i├žin ek bir se├ženek i├žin, ├žo─čunlukla burada a├ž─▒klanan dallanma modelini takip ediyordum: http://nvie.com/posts/a-successful-git-branching-model/ ve ├Âyle birle┼čti --no-ff (hay─▒r h─▒zl─▒ ileri) genellikle.

Bu sayfay─▒ okudum, yanl─▒┼čl─▒kla da─č─▒t─▒m dal─▒m yerine test dal─▒m yerine test dal─▒n─▒ birle┼čtirdim (web sitesi, usta canl─▒.). Test ┼čubesinin kendisine ba─čl─▒ iki ┼čubesi daha vard─▒r ve toplamda alt─▒ komisyon vard─▒r.

Yani t├╝m taahh├╝d├╝m├╝z├╝ geri d├Ând├╝rmek i├žin sadece birine ihtiyac─▒m vard─▒ git reset --hard HEAD^ ve bu b├╝t├╝n birli─či geri ald─▒. Birle┼čtirmeler h─▒zl─▒ bir ┼čekilde iletilmedi─činden, birle┼čtirme bir bloktu ve bir ad─▒m geri "dal birle┼čtirilmedi".


10







Bir birle┼čtirme i┼člemini geri almak veya belirli bir i┼člemle yeniden ba┼člatmak i├žin yaln─▒zca iki komut kullanabilirsiniz:

  1. git reset --hard commitHash (Yeniden ba┼člatmak istedi─činiz taahh├╝d├╝ kullanmal─▒s─▒n─▒z, ├Ârne─čin. 44a587491e32eafa1638aca7738)
  2. git push origin HEAD --force (Yeni yerel ana dal─▒n men┼če / anaya g├Ânderilmesi)

─░yi ┼čanslar ve devam et!


10







En basit cevap odinho taraf─▒ndan verilen cevapt─▒r - Velmont

─░lk ├Ânce git reset --merge ORIG_HEAD

De─či┼čikliklerden sonra s─▒f─▒rlama yapmak isteyenler i├žin, bunu yap─▒n (├ž├╝nk├╝ bu herhangi bir git s─▒f─▒rlama birle┼čtirme sorusu i├žin ilk g├Âr├╝len mesajd─▒r)

git push origin HEAD --force

Bu, birle┼čtirilen de─či┼čiklikleri geri ├žekmeden tekrar alamayaca─č─▒n─▒z ┼čekilde s─▒f─▒rlan─▒r.


10







Birle┼čtirme i┼čleminiz ve ilgili taahh├╝tleriniz hen├╝z y├╝klenmediyse, her zaman ba┼čka bir ┼čubeye ge├žebilir, orijinalini silip yeniden olu┼čturabilirsiniz.

├ľrne─čin, yanl─▒┼čl─▒kla bir geli┼čtirme kolunu ustal─▒kla birle┼čtirdim ve bunu geri almak istedim. A┼ča─č─▒daki ad─▒mlar─▒ kullanarak:

 git checkout develop
git branch -D master
git branch -t master origin/master
 

─░┼čte bu kadar! Efendi, men┼čei ile ayn─▒ a┼čamadad─▒r ve yanl─▒┼č birle┼čtirilen durumunuz silinir.


8







HEAD'inizi de─či┼čtirmek zorundas─▒n─▒z, elbette sizin de─čil ama git HEAD ....

├ľyleyse cevaplamadan ├Ânce, bunun ne oldu─čunu a├ž─▒klayan baz─▒ arka plan ekleyelim HEAD .

First of all what is HEAD?

HEAD bu, yaln─▒zca ge├žerli daldaki ge├žerli i┼čleme (en son) referanst─▒r. Herhangi bir zamanda
yaln─▒zca bir tane olabilir HEAD . (hari├ž git worktree )

─░├žeri─či HEAD i├žeride saklan─▒r .git/HEAD ve mevcut taahh├╝d├╝n 40 bayt SHA-1'ini i├žerir.


detached HEAD

En son HEAD s├Âzde de─čilseniz - tarihte bir ├Ânceki s├Âze i┼čaret eden anlam denir detached HEAD .


g├Âr├╝nt├╝ tan─▒m─▒n─▒ buraya girin

Komut sat─▒r─▒nda, HEAD ┼ču anki dal─▒n ucuna i┼čaret etmedi─činden dal ad─▒ yerine ┼×A-1 gibi g├Âr├╝necektir.


g├Âr├╝nt├╝ tan─▒m─▒n─▒ buraya girin


g├Âr├╝nt├╝ tan─▒m─▒n─▒ buraya girin

Ayr─▒lm─▒┼č bir HEAD'den nas─▒l kurtar─▒laca─č─▒na dair birka├ž se├ženek:


git checkout

 git checkout <commit_id>
git checkout -b <new branch> <commit_id>
git checkout HEAD~X // x is the number of commits t go back
 

Bu, istenen ┼čubeye i┼čaret eden yeni ┼čubeyi teslim alacakt─▒r.
Bu komut belirli bir taahh├╝tte bulunacakt─▒r.
Bu noktada bir ┼čube olu┼čturabilir ve bu noktadan itibaren ├žal─▒┼čmaya ba┼člayabilirsiniz.

 # Checkout a given commit. 
# Doing so will result in a `detached HEAD` which mean that the `HEAD`
# is not pointing to the latest so you will need to checkout branch
# in order to be able to update the code.
git checkout <commit-id>

# create a new branch forked to the given commit
git checkout -b <branch name>
 

git reflog

Her zaman da kullanabilirsiniz reflog .
git reflog g├╝ncellenen herhangi bir de─či┼čiklik g├Âsterecek HEAD ve istenen reflog giri┼čini kontrol HEAD etmek bu i┼čleme geri d├Ânecektir.

HEAD her de─či┼čtirili┼činde yeni bir giri┼č olacakt─▒r. reflog

 git reflog
git checkout [email protected]{...}
 

Bu sizi istenen taahh├╝d├╝n├╝ze geri d├Ând├╝r├╝r


g├Âr├╝nt├╝ tan─▒m─▒n─▒ buraya girin


git reset --hard <commit_id>

HEAD'inizi istedi─činiz i┼čleme geri g├Ât├╝r├╝n.

 # This will destroy any local modifications.
# Don't do it if you have uncommitted work you want to keep.
git reset --hard 0d1d7fc32

# Alternatively, if there's work to keep:
git stash
git reset --hard 0d1d7fc32
git stash pop
# This saves the modifications, then reapplies that patch after resetting.
# You could get merge conflicts if you've modified things which were
# changed since the commit you reset to.
 

git revert <sha-1>

Verilen taahh├╝t veya taahh├╝t aral─▒─č─▒n─▒ "geri al".
Reset komutu verilen taahh├╝tte yap─▒lan de─či┼čiklikleri "geri al─▒r".
Geri alma yamas─▒ ile yeni bir taahh├╝t, orijinal taahh├╝t tarihte de kalacakt─▒r.

 # add new commit with the undo of the original one.
# the <sha-1> can be any commit(s) or commit range
git revert <sha-1>
 

Bu ┼čema hangi komutun ne yapt─▒─č─▒n─▒ g├Âsterir.
G├Ârd├╝─č├╝n├╝z gibi orada reset && checkout de─či┼čtirin HEAD .


g├Âr├╝nt├╝ tan─▒m─▒n─▒ buraya girin


7







Bir komut sat─▒r─▒ ├ž├Âz├╝m├╝ istiyorsan─▒z, sadece MBO'nun cevab─▒n─▒ bulman─▒z─▒ ├Âneririm.

E─čer bir acemi iseniz, grafik yakla┼č─▒m─▒n─▒ be─čenebilirsiniz:

  1. Kick off gitk (komut sat─▒r─▒ndan veya varsa dosya taray─▒c─▒s─▒n─▒ sa─č t─▒klat─▒n)
  2. Orada birle┼čtirme taahh├╝d├╝n├╝ kolayca fark edebilirsiniz - ilk iki ebeveyn ile ilk d├╝─č├╝m
  3. ─░lk / sol ebeveyne giden ba─člant─▒y─▒ takip edin (birle┼čtirme ├Âncesi ge├žerli ┼čubenizdeki ba─člant─▒, genellikle benim i├žin k─▒rm─▒z─▒)
  4. Se├žilen onaylama i┼čleminde, "┼×ube buraya s─▒f─▒rla" y─▒ sa─č t─▒klay─▒n, oradan sabit s─▒f─▒rlamay─▒ se├žin

4







Strateji: Her ┼čeyin iyi oldu─ču yerden yeni bir ┼čube olu┼čturun.

Gerek├že: Bir birle┼čtirme i┼člemini geri almak zor. Birle┼čmenizi taahh├╝t etmi┼č veya ittirmi┼č olman─▒z veya birle┼čtirme i┼čleminizden bu yana yeni taahh├╝tler olup olmad─▒─č─▒ gibi bir├žok fakt├Âre ba─čl─▒ olarak ├žok fazla ├ž├Âz├╝m vard─▒r. Ayr─▒ca, bu ├ž├Âz├╝mleri sizin durumunuza uyarlamak i├žin hala g├Ârece olarak derinlemesine bir anlay─▒┼ča ihtiyac─▒n─▒z var. Baz─▒ talimatlar─▒ k├Âr bir ┼čekilde uygularsan─▒z, hi├žbir ┼čeyin birle┼čtirilmeyece─či bir "bo┼č birle┼čtirme" ile bitebilir ve daha fazla birle┼čtirme giri┼čimi Git'in size "Zaten g├╝ncel" oldu─čunu s├Âyler.

├ç├Âz├╝m:

Let en Birle┼čtirmek istedi─činiz demek dev i├žine feature-1 .

  1. Birle┼čtirme almak istedi─činiz d├╝zeltmeyi bulun:

     git log --oneline feature-1
    a1b2c3d4 Merge branch 'dev' into 'feature-1' <-- the merge you want to undo
    e5f6g7h8 Fix NPE in the Zero Point Module <-- the one before the merge, you probably want this one
     
  2. ┼×una bak (zaman i├žinde geri d├Ân):

     git checkout e5f6g7h8
     
  3. Oradan yeni bir ┼čube olu┼čturun ve kontrol edin:

     git checkout -b feature-1
     

┼×imdi birle┼čtirme i┼čleminizi yeniden ba┼člatabilirsiniz:

  1. Birle┼čtirme: git merge dev

  2. Birle┼čtirme ├žat─▒┼čmalar─▒n─▒z─▒ d├╝zeltin.

  3. Teslim Et: git commit

  4. Sonu├žlardan memnun kald─▒─č─▒n─▒zda, eski ┼čubeyi silin: git branch --delete feature-1


4


2015-06-11





Birden ├žok yolla yap─▒labilir.

1) Birle┼čtirmeyi ─░ptal Et

K├Ât├╝ bir birle┼čme aras─▒ndaysan─▒z (yanl─▒┼čl─▒kla yanl─▒┼č dalla yap─▒l─▒r) ve birimin a┼ča─č─▒daki gibi en son ┼čubeye geri d├Ânmesini engellemek istiyorsan─▒z:

 git merge --abort
 

2) HEAD'i uzaktaki ┼čubeye s─▒f─▒rlay─▒n

Uzaktan geli┼čtirme bran┼č─▒ndan ├žal─▒┼č─▒yorsan─▒z, HEAD'i uzak ┼čubedeki son i┼čleme kadar a┼ča─č─▒daki gibi s─▒f─▒rlayabilirsiniz:

 git reset --hard origin/develop
 

3) Mevcut ┼čubeyi silin ve uzak havuzdan tekrar ├Âdeme yap─▒n

┼×u anda, yerel repo geli┼čtirme dal─▒ ├╝zerinde ├žal─▒┼č─▒yorsunuz, uzak / geli┼čme dal─▒yla e┼čitleme yap─▒yorsan─▒z, a┼ča─č─▒dakileri yapabilirsiniz:

 git checkout master 
##to delete one branch, you need to be on another branch, otherwise you will fall with the branch :) 

git branch -D develop
git checkout -b develop origin/develop
 

2







Bence , geri sarmak istedi─činiz art─▒ bir tanesini (ya da geri d├Ânmek istedi─činiz bir├žok komisyonu) ancak daha sonra istemedi─činiz komisyonlar─▒n sat─▒rlar─▒n─▒ silmek istedi─činiz kadar geriye tan─▒mlay─▒c─▒ karma┼čay─▒ git rebase -i [hash] [branch_name] nerede [hash] yapabilirsiniz? . Dosya 'y─▒ kaydet. ├ç─▒k─▒┼č. Dua etmek. Ve geri sar─▒lmal─▒. Bir yapman─▒z gerekebilir git reset --hard , ancak bu noktada iyi olmal─▒. Bunu, belirli taahh├╝tleri bir y─▒─č─▒ndan ├ž─▒karmak i├žin de kullanabilirsiniz, e─čer onlar─▒ tarihinizde tutmak istemiyorsan─▒z, ancak depolar─▒n─▒z─▒ muhtemelen istemedi─činiz bir durumda b─▒rakabilirsiniz.


1







Birle┼čtirmeyi kabul ettiyseniz:

 git reset HEAD~1
# Make sure what you are reverting is in fact the merge files
git add .
git reset --hard
 

1







  1. ─░lk ├Ânce, her ┼čeyi yapt─▒─č─▒n─▒zdan emin olun.

  2. Ard─▒ndan deponuzu ├Ânceki ├žal─▒┼čma durumuna getirin:

     $ git reset f836e4c1fa51524658b9f026eb5efa24afaf3a36
     

    veya kullanma --hard ( bu, t├╝m yerel de─či┼čiklikleri siler, de─či┼čiklik yap─▒lmad─▒! ):

     $ git reset f836e4c1fa51524658b9f026eb5efa24afaf3a36 --hard
     

    Yanl─▒┼č bir ┼čekilde birle┼čtirilmeden ├Ânce orada olan hash'i kullan─▒n.

  3. ├ľnceki do─čru s├╝r├╝m├╝n en ├╝st├╝ne tekrar karar vermek istedi─činizi, a┼ča─č─▒dakileri yaparak kontrol edin:

     $ git log 4c3e23f529b581c3cbe95350e84e66e3cb05704f
    
    commit 4c3e23f529b581c3cbe95350e84e66e3cb05704f
    
    ...
    
    commit 16b373a96b0a353f7454b141f7aa6f548c979d0a
    
    ...
     
  4. Sa─č taahh├╝tlerinizi, havuzunuzun do─čru versiyonunun en ├╝st├╝ne ┼ču ┼čekilde uygulay─▒n:

    • Cherry-pick kullanarak (baz─▒ varolan taahh├╝tlerin getirdi─či de─či┼čiklikler)

           git cherry-pick ec59ab844cf504e462f011c8cc7e5667ebb2e9c7
       
    • Veya a┼ča─č─▒dakileri taahh├╝t ederek kiraz toplayarak:

      • ─░lk ├Ânce birle┼čtirmeden ├Ânce do─čru de─či┼čiklikleri kontrol edin:

         git diff 5216b24822ea1c48069f648449997879bb49c070..4c3e23f529b581c3cbe95350e84e66e3cb05704f
         
      • ─░lk ├Ânce birle┼čtirmeden ├Ânce do─čru de─či┼čiklikleri kontrol edin:

         git cherry-pick 5216b24822ea1c48069f648449997879bb49c070..4c3e23f529b581c3cbe95350e84e66e3cb05704f
         

        Bu, yapt─▒─č─▒n─▒z do─čru taahh├╝tlerin aral─▒─č─▒d─▒r (yanl─▒┼č birle┼čme hari├ž).


1







E─čer birle┼čtirme i┼člemi sonras─▒nda hemen geri gerekti─čini fark edip birle┼čtirme giri┼čiminden sonra ba┼čka bir ┼čey yapmad─▒ysan─▒z, sadece bu komutu verebilir: git reset --hard [email protected]{1} .

Temel olarak, birle┼čtirme sha i┼čleminiz [email protected]{0} , birle┼čtirme i┼čleminden sonra ba┼čka bir i┼člem yap─▒lmamas─▒na i┼čaret eder ve birle┼čtirme i┼čleminden [email protected]{1} ├Ânceki nokta olur.


0







En basit ┼čans─▒n en basiti, burada s├Âylenenden ├žok daha basit:

Yerel ┼čubenizi ├ž─▒kar─▒n (yerel de─čil, uzak de─čil) ve tekrar ├žekin. Bu ┼čekilde ana ┼čubenizdeki de─či┼čiklikleri geri al─▒rs─▒n─▒z ve itmek istemedi─činiz de─či┼čiklikten herkes etkilenir. Ba┼čtan ba┼čla.


0


2016-07-15





Bu durumda ┼čubenizi s─▒f─▒rlamak isteyeceksiniz git reset --hard <branch_name> . De─či┼čikliklerinizi s─▒f─▒rlamadan ├Ânce kaydetmek istiyorsan─▒z, yeni bir dal olu┼čturdu─čunuzdan ve git checkout <branch_name> .

Durumu, git reset --hard <commit_id> ayn─▒ zamanda belirli bir taahh├╝de s─▒f─▒rlayabilirsiniz .

De─či┼čiklikler itti ise git revert <branch_name> bunun yerine kullanabilirsiniz . Git revert ve git checkout'u di─čer senaryolarda da nas─▒l kulland─▒─č─▒n─▒za emin olun .


0







  1. git stash

  2. git branch -d the_local_branch

  3. git checkout -t <name of remote>

  4. git stash apply

Bu benim i├žin ├žal─▒┼čt─▒ .. !!


0







Sadece yeni bir ┼čube yarat─▒n, sonra istenilen se├žimi yapmay─▒ se├žin.

Tasarruflu ve basittir, daha sonra yukar─▒daki bir├žok cevapta a├ž─▒klanan ┼čekilde s─▒f─▒rlar.


0


2019-08-15

─░lgili yay─▒nlar


Birle┼čtirilen t├╝m Git dallar─▒n─▒ nas─▒l silebilirim?

Zaten diskten silinmi┼č bir Git deposundan birden fazla dosyay─▒ kald─▒rma

Zaten diskten silinmi┼č bir Git deposundan birden fazla dosyay─▒ kald─▒rma

Uzak bir ┼čubeye itilmi┼č bir birle┼čtirme taahh├╝d├╝n├╝ nas─▒l geri alabilirim?

Git'te uzaktaki depolara itilen belirli bir i┼člemi geri al

Git git birle┼čtirme ile ├žak─▒┼čmay─▒ geri alma

─░tilmemi┼č bir git i┼člemeyi kald─▒r─▒n

Gittikten sonra i┼čten ├ž─▒karmaya nas─▒l karar verilir?

Birle┼čtirme ├žak─▒┼čmas─▒yla sonu├žlanan git stash pop komutunu geri al─▒n

Git ┼čubesinde de─či┼čtirilen t├╝m dosyalar─▒ al

Etiketle ilgili di─čer sorular [git]


JavaScriptÔÇÖte iki say─▒ aras─▒nda rastgele say─▒ olu┼čturma

32 bit d├Âng├╝ sayac─▒n─▒ 64 bit ile de─či┼čtirmek ├ž─▒lg─▒n performans sapmalar─▒na neden olur

Mac OS X'te belirli bir TCP portunu kim dinliyor?

Neden '==' veya 'is' kullanarak dizeleri kar┼č─▒la┼čt─▒rmak bazen farkl─▒ bir sonu├ž veriyor?

Bir JSON dosyas─▒ nas─▒l yazd─▒r─▒l─▒r?

Git macOS G├╝ncellemesinden sonra ├žal─▒┼čm─▒yor (xcrun: error: ge├žersiz aktif geli┼čtirici yolu (/ Library / Developer / CommandLineTools)

Bak─▒n─▒z: Chrome Geli┼čtirici Ara├žlar─▒'ndaki hover state

S─▒n─▒rlara S─▒─čd─▒rmak ─░├žin Otomatik ├ľl├žekli TextView Metni

SQL Server: Veritaban─▒ ÔÇťGeri Y├╝klemeÔÇŁ durumunda kald─▒

Yaz─▒l─▒m─▒m─▒ ─░nternetten k─▒r─▒k indirirken buldum, ne yapmal─▒?