Değişiklikleri Geçici Olarak Saklama ve Seçerek Uygulama
Değişiklikleri geçici olarak kaydetmek için `git stash` ve belirli işlemeleri dallar arasında uygulamak için `git cherry-pick` kullanımında uzmanlaşın.
Değişiklikleri Geçici Olarak Saklama ve Seçerek Uygulama, CoddyKit'te ücretsiz bir Git Advanced: Monorepo, Submodules & Workflows dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Git Advanced: Monorepo, Submodules & Workflows öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Git Advanced: Monorepo, Submodules & Workflows kursu toplamda 4 dersten oluşur.
Bu dersin bazı bölümleri henüz çevrilmemiş olup İngilizce olarak gösterilmektedir.
Why Use Git Stash?
Mid-feature and an urgent bug fix lands? git stash temporarily shelves your uncommitted changes so you can switch branches without committing half-done work.
Saving Your Changes Temporarily
Run git stash to save your modified and staged changes, then Git resets your working directory to a clean HEAD. Your work is safely tucked away.
git status
# On branch feature-x
# Changes to be committed:
# new file: new_feature.txt
# Changes not staged for commit:
# modified: index.html
git stash
# Saved working directory and index state WIP on feature-x: ...
# HEAD is now at ...
git status
# On branch feature-x
# nothing to commit, working tree cleanViewing Your Stash Stack
You can hold multiple stashes. git stash list shows them all, each indexed — stash@{0} being the most recent.
git stash list
# stash@{0}: WIP on feature-x: ...
# stash@{1}: WIP on bugfix-branch: ...Bringing Stash Back: Apply
git stash apply restores your most recent stash into the working directory. Want an older one? Name it, like git stash apply stash@{1}.
git checkout bugfix-branch
git stash apply stash@{1}
# On branch bugfix-branch
# Changes not staged for commit:
# modified: bug.jsApply vs. Pop: What's the Difference?
apply vs pop: apply restores changes but keeps the stash in the list; pop restores them and removes the stash. Use pop when you're done with it.
git stash list
# stash@{0}: WIP on feature-x: ...
git stash pop
# On branch feature-x
# Changes not staged for commit:
# modified: index.html
# Dropped stash stash@{0} (...
git stash list
# (empty output, stash is gone)Cleaning Up Stashes
Clean up stashes you no longer need: git stash drop <id> removes one, git stash clear removes all. Clear can't be undone, so be careful.
git stash list
# stash@{0}: WIP on feature-x: ...
# stash@{1}: WIP on old-bug: ...
git stash drop stash@{1}
# Dropped stash stash@{1} (...
git stash list
# stash@{0}: WIP on feature-x: ...Introducing Git Cherry-Pick
Need just one commit from another branch, not its whole history? git cherry-pick applies a single commit's changes onto your current branch.
Applying a Single Commit
Find the commit hash with git log --oneline, switch to your target branch, then git cherry-pick <hash> to bring just that change over.
git log --oneline
# a1b2c3d Fix: Critical typo in header
# e4f5g6h Feat: Add user profiles
git checkout main
# Switched to branch 'main'
git cherry-pick a1b2c3d
# [main] Fix: Critical typo in header
# 1 file changed, 1 insertion(+), 1 deletion(-)Resolving Cherry-Pick Conflicts
Cherry-picking can conflict like a merge. Resolve manually, git add the files, then git cherry-pick --continue — or --abort to cancel.
git cherry-pick a1b2c3d
# Auto-merging header.js
# CONFLICT (content): Merge conflict in header.js
# error: could not apply a1b2c3d...
# (Resolve conflicts, then:)
git add header.js
git cherry-pick --continueStash & Cherry-Pick Quiz
You are on the feature-A branch, with uncommitted changes. An urgent fix needs to go into main. You stash your changes, switch to main, and fix the bug with a commit (hash: 789abc). Now you want to apply this fix to feature-A and return to your work.
Lesson Summary
Recap: git stash shelves uncommitted work so you can switch branches cleanly, and git cherry-pick grabs a single commit from one branch onto another.
Sıkça Sorulan Sorular
“Değişiklikleri Geçici Olarak Saklama ve Seçerek Uygulama” dersi ücretsiz mi?
Evet — “Değişiklikleri Geçici Olarak Saklama ve Seçerek Uygulama” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Git Advanced: Monorepo, Submodules & Workflows kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Git Advanced: Monorepo, Submodules & Workflows kursu toplamda 4 dersten oluşur.
“Değişiklikleri Geçici Olarak Saklama ve Seçerek Uygulama” dersinde ne öğreneceğim?
Değişiklikleri geçici olarak kaydetmek için `git stash` ve belirli işlemeleri dallar arasında uygulamak için `git cherry-pick` kullanımında uzmanlaşın. Git Advanced: Monorepo, Submodules & Workflows ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Git Advanced: Monorepo, Submodules & Workflows öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Git Advanced: Monorepo, Submodules & Workflows, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.
“Değişiklikleri Geçici Olarak Saklama ve Seçerek Uygulama” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Git Advanced: Monorepo, Submodules & Workflows dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Git Advanced: Monorepo, Submodules & Workflows dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Etkileşimli Yeniden Tabanlama ve Değişiklikleri Düzeltme
- Değişiklikleri Geçici Olarak Saklama ve Seçerek Uygulama
- Kurtarma için Reflog
- Bisect: Hatalı Commit'leri Bulma