# commit ಅನ್ನು ಬೇರೆ branch ಗೆ ಸ್ಥಳಾಂತರಿಸುವುದು

ನೀವು commit ಮಾಡಿದ್ದ ನಂತರ, ಅದು ತಪ್ಪಾಗಿ ಬೇರೆ branch ನಲ್ಲಿ ಆಗಿದೆ ಎಂದು ಗಮನಿಸಿದರೆ ಏನು ಮಾಡಬೇಕು?
ಈ ಟ್ಯುಟೋರಿಯಲ್ ಇದನ್ನು ಸರಿಪಡಿಸುವ ಬಗ್ಗೆ.

## ಈಗಾಗಲೇ ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ branch ಗೆ commit ಸ್ಥಳಾಂತರಿಸುವುದು

ಈ ಕೆಳಗಿನ ಆಜ್ಞೆಗಳನ್ನು ಬಳಸಿ:

```bash
git reset HEAD~ --soft  # ಕೊನೆಯ commit ಅನ್ನು ಹಿಂದಕ್ಕೆ ಕೊಂಡು ಬರುತ್ತದೆ, ಆದರೆ ಪರಿಷ್ಕರಣೆಗಳನ್ನು ಉಳಿಸುತ್ತದೆ.
git stash  # ಪ್ರಸ್ತುತ ಸ್ಥಿತಿಯನ್ನು ಸಂಗ್ರಹಿಸುತ್ತದೆ.

git checkout name-of-the-correct-branch  # ಸರಿಯಾದ branch ಗೆ ತೆರಳುತ್ತದೆ.
git stash pop  # ಹಿಂದಿನ ಸ್ಥಿತಿಯನ್ನು ಪುನಃ ಪ್ರಸ್ತಾಪಿಸುತ್ತದೆ.
git add .  # ಎಲ್ಲಾ ಪರಿಷ್ಕರಣೆಗಳನ್ನು stage ಮಾಡುತ್ತದೆ.
git commit -m "your message here"  # commit ಮಾಡುತ್ತದೆ.
```

ಈಗ ನಿಮ್ಮ ಪರಿಷ್ಕರಣೆಗಳು ಸರಿಯಾದ branch ನಲ್ಲಿ ಇವೆ.

## ಹೊಸ branch ಗೆ commit ಸ್ಥಳಾಂತರಿಸುವುದು

```bash
git branch newbranch  # ಹೊಸ branch ರಚಿಸುತ್ತದೆ.
git reset --hard HEAD~#  # # ಗಿಂತ ಹಳೆಯ commit ಗಳನ್ನು ಹಿಂದಕ್ಕೆ ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ (ಈಗಿನ branch ನಿಂದ ಅಳಿಸಿಬಿಡುತ್ತದೆ!).
git checkout newbranch  # ಹೊಸ branch ಗೆ ಸ್ಥಳಾಂತರವಾಗುತ್ತದೆ.
```

**ಗಮನಿಸಿ:** ಯಾವುದೇ commit ಆಗದ ಪರಿಷ್ಕರಣೆಗಳು ಇಲ್ಲವಾಗುತ್ತವೆ!

---

# Git ನಿಂದ ಫೈಲ್ ಅನ್ನು ತೆಗೆದುಹಾಕುವುದು

ಕಾಲಕಾಲಕ್ಕೆ, Git ನಿಂದ ಫೈಲ್ ಅನ್ನು ತೆಗೆದುಹಾಕಬೇಕು, ಆದರೆ ಅದನ್ನು ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್ ನಿಂದ ಅಳಿಸಬಾರದು. ಇದನ್ನು ಈ ಕೆಳಗಿನ ಆಜ್ಞೆಯ ಮೂಲಕ ಮಾಡಬಹುದು:

```bash
git rm <file> --cached
```

## ಆಗಿದ್ದು ಏನು?

Git ಫೈಲ್ ಅನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡುವುದನ್ನು ನಿಲ್ಲಿಸುತ್ತದೆ. Git ಗೆ, ಅದು ಅಳಿಸಿದಂತೆ ಕಾಣುತ್ತದೆ, ಆದರೆ ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್ ನಲ್ಲಿ ಅದು ಇನ್ನೂ ಇರುತ್ತದೆ.

**ಗಮನಿಸಿ:** `--cached` ಆಯ್ಕೆಯನ್ನು ಬಳಸಿದರೆ ಮಾತ್ರ ಫೈಲ್ ಅನ್ನು Git ನಿಂದ ತೆಗೆದುಹಾಕಿ, ಆದರೆ ನಿಮ್ಮ ಸಿಸ್ಟಮ್ ನಲ್ಲೇ ಇರಿಸಿಕೊಳ್ಳಬಹುದು. ಈ ಆಯ್ಕೆಯನ್ನು ಬಳಸದೆ `git rm <file>` ಮಾಡಿದರೆ, ಅದು ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್ ನಿಂದಲೂ ಫೈಲ್ ಅನ್ನು ಅಳಿಸಿಬಿಡುತ್ತದೆ.

ನೀವು ಈ ಬದಲಾವಣೆಯನ್ನು commit ಮಾಡಿ, `git push origin master` ಬಳಸಿದರೆ, ಫೈಲ್ ನಿಮ್ಮ ರಿಮೋಟ್ ರೆಪೊಸಿಟರಿಯಿಂದಲೂ ಅಳಿಸಿಬಿಡುತ್ತದೆ.

## ಹೆಚ್ಚುವರಿ ವಿಶೇಷತೆಗಳು

- ಹಲವಾರು ಫೈಲ್ ಗಳನ್ನು ಒಂದೇ ಆಜ್ಞೆಯಲ್ಲಿ ತೆಗೆದುಹಾಕಲು:

    ```bash
    git rm file1.js file2.js file3.js --cached
    ```

- ಫೈಲ್ ಮಾದರಿಗಳನ್ನು ಬಳಸಿ ಫೈಲ್ ಗಳನ್ನು ತೆಗೆದುಹಾಕಲು:
  
    ```bash
    git rm *.txt --cached  # ಎಲ್ಲಾ .txt ಫೈಲ್ ಗಳನ್ನು Git ನಿಂದ ತೆಗೆದುಹಾಕುತ್ತದೆ.
    ```

