Varolan ve taahh├╝t edilmeyen i┼čleri Git'teki yeni bir ┼čubeye ta┼č─▒


Al─▒nan cevaba git


Yeni bir ├Âzellik ├╝zerinde ├žal─▒┼čmaya ba┼člad─▒m ve bir s├╝re kod yazd─▒ktan sonra, bu ├Âzelli─čin kendi bran┼č─▒nda olmas─▒ gerekti─čine karar verdim.

Mevcut taahh├╝t edilmemi┼č de─či┼čiklikleri yeni bir ┼čubeye nas─▒l ta┼č─▒r─▒m ve mevcut olan─▒ nas─▒l s─▒f─▒rlar─▒m?

Yeni ├Âzellikteki mevcut ├žal─▒┼čmalar─▒ korurken mevcut ┼čubemi s─▒f─▒rlamak istiyorum.


2949









Cevap say─▒s─▒n─▒ say: 8






A┼ča─č─▒dakileri kullan─▒n:

 git checkout -b <new-branch>
 

Bu, ge├žerli ┼čubenizi oldu─ču gibi b─▒rakacak, yeni bir ┼čube olu┼čturup teslim alacak ve t├╝m de─či┼čikliklerinizi tutacakt─▒r. Daha sonra ile bir taahh├╝t yapabilir:

 git add <files>
 

ve yeni ┼čubenizi a┼ča─č─▒dakilerle taahh├╝t:

 git commit -m "<Brief description of this commit>"
 

├çal─▒┼čma dizinindeki ve dizindeki a┼čamalardaki de─či┼čiklikler hen├╝z bir ┼čubeye ait de─čil. Bu, bu de─či┼čikliklerin bitece─či yerde de─či┼čir.

Sen yok reset onu oldu─ču gibi kal─▒r, orijinal dal─▒. Son taahh├╝t <old-branch> yine ayn─▒ olacak. Bu nedenle siz checkout -b ve sonra taahh├╝t edin.


3449







Alternatif:

  1. Ge├žerli de─či┼čiklikleri ge├žici saklamaya kaydet:

    $ git stash

  2. Bu rafa g├Âre yeni bir ┼čube olu┼čturun ve yeni ┼čubeye ge├žin:

    $ git stash branch <new-branch> [email protected]{0}

─░pucu: stash ad─▒n─▒ yazmay─▒ azaltmak i├žin sekme tu┼čunu kullan─▒n.


312







Kodlan─▒rken ana ┼čubenizde taahh├╝tte bulunuyorsan─▒z, ancak ┼čimdi bu taahh├╝tleri farkl─▒ bir ┼čubeye ta┼č─▒mak istiyorsan─▒z:

  1. ┼×u anki ge├žmi┼činizi yeni bir ┼čubeye kopyalay─▒n, ayn─▒ zamanda herhangi bir tamamlanmam─▒┼č de─či┼čikli─či de getirin:

     git checkout -b <new-feature-branch>
     
  2. ┼×imdi orijinal "da─č─▒n─▒k" dal─▒ geri d├Ânmeye zorlay─▒n: (a├žmadan)

     git branch -f <previous-branch> <earlier-commit-id>
     

    ├ľrne─čin:

     git branch -f master origin/master
     

    veya 4 taahh├╝tte bulunmu┼čsan─▒z:

     git branch -f master HEAD~4
     

Uyar─▒: anla┼č─▒lmaktad─▒r git branch -f master origin/master edecektir izleme bilgilerini s─▒f─▒rlamak o ┼čube i├žin. E─čer yap─▒land─▒rm─▒┼č Yani e─čer master farkl─▒ bir yere kadar itme dal─▒ origin/master ard─▒ndan yap─▒land─▒rma kaybolacak.

Bir alternatif bu s─▒f─▒rlama tekni─čini kullanmakt─▒r . Ancak bu talimatlar, sahip oldu─čunuz herhangi bir kabul edilmemi┼č de─či┼čikli─či iptal edecektir. Bunlar─▒ saklamak istiyorsan, ├Ânce sakla ve sonunda sakla.


45







Ortak senaryo ┼čudur: Yeni ├Âzellik i├žin yeni dal olu┼čturmay─▒ unuttum ve t├╝m i┼či eski ├Âzellik dal─▒nda yapt─▒m. T├╝m "eski" ├žal─▒┼čmalar─▒ ana dal─▒na verdim ve yeni dal─▒m─▒n da "ana" dan b├╝y├╝mesini istiyorum. Yeni i┼čim i├žin tek bir taahh├╝tte bulunmad─▒m. ┼×ube yap─▒s─▒: "master" -> "Old_feature"

 git stash 
git checkout master
git checkout -b "New_branch"
git stash apply
 

22







E─čer bunu taahh├╝t ederseniz, tek bir taahh├╝t kimli─čini kirazl─▒ olarak da se├žebilirsiniz. Master'da ├žal─▒┼čmaya ba┼člad─▒─č─▒mda bunu s─▒k s─▒k yap─▒yorum ve sonra orijinime gitmeden ├Ânce yerel bir ┼čube olu┼čturmak istiyorum.

 git cherry-pick <commitID>
 

Burada a├ž─▒kland─▒─č─▒ gibi, vi┼čneli pick ile yapabilece─činiz ├žok ┼čey var , ancak bu sizin i├žin bir durum olabilir.


17







@Robin cevap kulland─▒m ve yapt─▒─č─▒m her ┼čeyi listeledi.

 git status                               <-- review/list uncommitted changes
git stash                                <-- stash uncommitted changes
git stash branch <new-branch> [email protected]{1}  <-- create a branch from stash
git add .                                <-- add local changes
git status                               <-- review the status; ready to commit
git commit -m "local changes ..."        <-- commit the changes
git branch --list                        <-- see list of branches incl the one created above
git status                               <-- nothing to commit, working tree (new-branch) is clean
git checkout <old-branch>                <-- switch back
 

! Depoda birden fazla raf varsa, hangisinin yeni ┼čubeye uygulanaca─č─▒na bak─▒n:

 git stash list  
  [email protected]{0}: WIP on ...  
  [email protected]{1}: WIP on ...
 

Bireysel saklamay─▒ kontrol etmek,

 git stash show [email protected]{1}
 

Veya bir kerede t├╝m depolar─▒ inceleyin:

 git stash list -p
 

0







Asl─▒nda GitHub Desktop ile daha ├Ânce bir ├Âzellik oldu─čuna inanmad─▒─č─▒m i├žin bunu yapman─▒n ger├žekten kolay bir yolu var.

Yapman─▒z gereken tek ┼čey GitHub DesktopÔÇÖtaki yeni ┼čubeye ge├žmek ve de─či┼čikliklerinizi ge├žerli ┼čubede (stanted olacak) b─▒rakman─▒z─▒ veya de─či┼čikliklerinizi yan─▒n─▒zda getirmenizi isteyecektir. De─či┼čiklikleri yeni ┼čubeye getirmek i├žin ikinci se├žene─či se├žin. Her zamanki gibi yapabilirsin.


GitHub Masa├╝st├╝


0







Bu, GITÔÇÖin t├╝m ara├žlar─▒n─▒ kullanmak i├žin yararl─▒ olabilir.

komuta

┼×ube de─či┼čtir - de─či┼čikliklerinizi yeni ┼čubeye ta┼č─▒yacakt─▒r. O zaman de─či┼čiklik yapabilirsin.

  $ git checkout -b <new-branch>
 

TortoiseGIT

Deponuza sa─č t─▒klay─▒n ve ard─▒ndan TortoiseGit-> Switch / Checkout kullan─▒n


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


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

SourceTree

┼×ubeyi de─či┼čtirmek i├žin "├ľdeme" d├╝─čmesini kullan─▒n. Bir ┼čubeye t─▒klad─▒ktan sonra en ├╝stte "├Âdeme" d├╝─čmesini g├Âreceksiniz. Mevcut ┼čubeden gelen de─či┼čiklikler otomatik olarak uygulanacakt─▒r. O zaman onlar─▒ taahh├╝t edebilirsin.


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


0



─░lgili yay─▒nlar


En son taahh├╝tleri Git ile yeni bir ┼čubeye ta┼č─▒y─▒n

Git'teki ana dal─▒n tamam─▒ ba┼čka bir daldan nas─▒l de─či┼čtirilir? [├žift]

Git'te ba┼čka bir ┼čubeden ┼čube olu┼čturma

Yerel Git ┼čubesini uzaktan kumandadaki master dal─▒na nas─▒l itebilirim?

Baz─▒ taahh├╝tler git i├žindeki ba┼čka bir ┼čubeye dayand─▒r─▒larak nas─▒l ta┼č─▒n─▒r?

git stash de─či┼čiklikleri yeni ┼čubeye mi uygulan─▒yor?

Git'teki ┼čubeler ne zaman silinir?

Git'teki ba┼čka bir dalda bir dal yerine 'birle┼čtirmek' yerine nas─▒l '├╝zerine yazar─▒m?

MasterÔÇÖda tamamlanmam─▒┼č de─či┼čiklikleri GitÔÇÖin yeni bir ┼čubesine koymak

Git'teki ba┼čka bir ┼čubeye nas─▒l ge├žebilirim?

Etiketle ilgili di─čer sorular [git]


ÔÇťLetÔÇŁ ve ÔÇťvarÔÇŁ kullanmak aras─▒ndaki fark nedir?

Pip'i Windows'a nas─▒l y├╝klerim?

Vim'de bir karakterin yeni sat─▒r ile nas─▒l de─či┼čtirilece─či

C++ 'da neden sanal fonksiyonlara ihtiyac─▒m─▒z var?

Objective-C kodunu Swift den nas─▒l ├ža─č─▒r─▒r─▒m?

'├ťr├╝n getirisinin' do─čru kullan─▒m─▒

Neden Java'da 2 * (i * i) 2 * i * i'den daha h─▒zl─▒?

Bir favicon'un 32x32 veya 16x16 olmas─▒ gerekiyor mu?

SO_REUSEADDR ve SO_REUSEPORT aras─▒nda ne fark var?

Kal─▒c─▒l─▒k API's─▒nda FetchType LAZY ile EAGER aras─▒ndaki fark nedir?