๐ branch ์ด๋ก ์ดํดํ๊ธฐ
https://git-scm.com/book/ko/v2/Git-%EB%B8%8C%EB%9E%9C%EC%B9%98-%EB%B8%8C%EB%9E%9C%EC%B9%98%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80

๐งท README
ํ๋ก์ ํธ์ ๋ํ ์ค๋ช , ์ฌ์ฉ๋ฐฉ๋ฒ, ๋ผ์ด์ผ์ค, ์ค์น๋ฐฉ๋ฒ ๋ฑ์ ๋ํ ๋ด์ฉ์ ๊ธฐ์ ํ๋ ํ์ผ
๐งท gitignore
Git ๋ฒ์ ๊ด๋ฆฌ์์ ์ ์ธํ ํ์ผ๋ชฉ๋ก์ ์ง์ ํ๋ ํ์ผ
์ฌ์ฉ์๊ฐ ์ํ์ง ์๋ ํ์ผ๋ค์ ์๋์ผ๋ก commit ๋์์์ ์ ์ธ์์ผ์ค
Repository ์์ฑ ์ defalt๋ก ์์ฑ๋๋ค.
- github์ main์ด ๋ํดํธ
- git์ master์ด ๋ํดํธ


๐ฉ Local Repository ๋ฅผ ์์ฑํ์ง ์์ ์ํ์์
Git Clone ๋ช
๋ น์ ์ฌ์ฉํ์ฌ Remote Repository ๋ฅผ Local ์ ๋ณต์ ํด๋ณด์
๐งท Git Clone
์์ ํด๋๋ฅผ ๋ง๋ค๊ณ
- Git Init ์ผ๋ก ํด๋น ํด๋๋ฅผ ์ด๊ธฐํ ํ๊ณ (git์ด ๊ด๋ฆฌ)
- Remote Repository ๋ฅผ ๋ฑ๋กํ๊ณ
- Remote Repository ์ ๋ด์ฉ์ Pull ํ๋ ๋ชจ๋ ๊ณผ์ ์ Git Clone ์ผ๋ก ํ ์ ์์
๋ฐ์๋น@์๋น์gram MINGW64 ~/OneDrive/Documents/git_ws (master)
$ git clone https://sxlbl:{ํ ํฐ๊ฐ}@github.com/sxlbl/HelloGit.git
Cloning into 'HelloGit'...
remote: Enumerating objects: 4, done.
remote: Counting objects: 100% (4/4), done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 4 (delta 0), reused 0 (delta 0), pack-reused 0
Receiving objects: 100% (4/4), done.
๋ฐ์๋น@์๋น์gram MINGW64 ~/OneDrive/Documents/git_ws (master)
$ ls
HelloGit/ test_project/

=> local์ hello git ์์ฑํ์ธ
๐ฉ ์ด๋ค ํ๋ก์ ํธ๋ฅผ ์งํํ๋ค๊ฐ ๋๊ฐ์ง ์๊ณ ๋ฆฌ์ฆ์ ๋์์ ๋ํ์ผ๋ก ๋๋ ์งํํ๊ณ ์ถ์ ๋,
Branch ๋ด์ ๋ณํํด์ ์์
ํ ์ ์๊ณ ๋ฒ์ ๋ ๋ฐ๋ก ๋ผ ์ ์๋ค.
๋๋ ๋ฆด๋ฆฌ์ฆ Branch์ ๊ฐ๋ฐ Branch๋ฅผ ๋ฐ๋ก ์ฌ์ฉ ํ ์ ์๋ค.
๐ก Local โ Remote : git add commit push
๐ก Remote โ Local : git pull
๐งท Branch ์กฐํ (Local Branch)
git branch๐งท Branch ์กฐํ (Remote Branch)
git branch -r๐งท Branch ์กฐํ (์ ์ฒด)
git branch -a๐ข Branch๋ฅผ Local Repository์์ ์์ฑํ๋ค๊ณ ๋ฐ๋ก Remote Repository์ ๊ณต์ ๋์ง ์๋๋ค.
Remote๋ก pushํด์คํจ
๐ Branch ์กฐํ (Local Branch)
๋ฐ์๋น@์๋น์gram MINGW64 ~/OneDrive/Documents/git_ws/HelloGit (master)
$ git branch
* master
๐ Branch ์กฐํ (Remote Branch)
๋ฐ์๋น@์๋น์gram MINGW64 ~/OneDrive/Documents/git_ws/HelloGit (master)
$ git branch -r
origin/HEAD -> origin/master
origin/master
๐ Branch ์กฐํ (์ ์ฒด)
๋ฐ์๋น@์๋น์gram MINGW64 ~/OneDrive/Documents/git_ws/HelloGit (master)
$ git branch -a
* master
remotes/origin/HEAD -> origin/master
remotes/origin/master
๐งท Branch ์์ฑ
git branch <branchname>๐งท Branch ์ด๋
git checkout <branchname>๐งท Branch ์์ฑ & ์ด๋ -> ๊ธฐ์กด ๋ธ๋์น๊ฐ ์์ด์ผํจ
git checkout -b <branchname>
๐ Branch ์์ฑ
๋ฐ์๋น@์๋น์gram MINGW64 ~/OneDrive/Documents/git_ws/HelloGit (master)
$ git branch branch01
๐ Branch ์์ฑํ์ธ
๋ฐ์๋น@์๋น์gram MINGW64 ~/OneDrive/Documents/git_ws/HelloGit (master)
$ git branch
branch01
* master
๐ Branch ์ด๋
๋ฐ์๋น@์๋น์gram MINGW64 ~/OneDrive/Documents/git_ws/HelloGit (master)
$ git checkout branch01
Switched to branch 'branch01'
๐ Branch ์ด๋ํ์ธ
๋ฐ์๋น@์๋น์gram MINGW64 ~/OneDrive/Documents/git_ws/HelloGit (branch01) ๐ ()๊ฐ master์์ branch01๋ก ๋ณ๊ฒฝ๋จ
$ git branch
* branch01
master
๐ Branch ์์ฑ&์ด๋
๋ฐ์๋น@์๋น์gram MINGW64 ~/OneDrive/Documents/git_ws/HelloGit (branch01)
$ git checkout -b branch02
Switched to a new branch 'branch02'
๐ Branch ์ด๋ํ์ธ
๋ฐ์๋น@์๋น์gram MINGW64 ~/OneDrive/Documents/git_ws/HelloGit (branch02)
$ git branch
branch01
* branch02
master
๐งท Local ์์ ์์ฑํ Branch Remote์ ์ ์ฉ
git push origin <branchname>
๐ branch01 ์ ์ฉ
๋ฐ์๋น@์๋น์gram MINGW64 ~/OneDrive/Documents/git_ws/HelloGit (branch02)
$ git push origin branch01
Total 0 (delta 0), reused 0 (delta 0), pack-reused 0
remote:
remote: Create a pull request for 'branch01' on GitHub by visiting:
remote: https://github.com/sxlbl/HelloGit/pull/new/branch01
remote:
To https://github.com/sxlbl/HelloGit.git
* [new branch] branch01 -> branch01
๐ branch02 ์ ์ฉ
๋ฐ์๋น@์๋น์gram MINGW64 ~/OneDrive/Documents/git_ws/HelloGit (branch02)
$ git push origin branch02
Total 0 (delta 0), reused 0 (delta 0), pack-reused 0
remote:
remote: Create a pull request for 'branch02' on GitHub by visiting:
remote: https://github.com/sxlbl/HelloGit/pull/new/branch02
remote:
To https://github.com/sxlbl/HelloGit.git
* [new branch] branch02 -> branch02
๐ branch ์ ์ฉํ์ธ
๋ฐ์๋น@์๋น์gram MINGW64 ~/OneDrive/Documents/git_ws/HelloGit (branch02)
$ git branch -a
branch01
* branch02
master
remotes/origin/HEAD -> origin/master
remotes/origin/branch01
remotes/origin/branch02
remotes/origin/master

๐งท Branch ์ญ์
git branch -d <branchname>๐ข ๋จ, ํ์ฑํ ๋ ์ํ์์๋ ์ญ์ ๊ฐ ๋์ง ์์ผ๋ฏ๋ก
๋ง์คํฐ ๋ธ๋์น๋ก ์ด๋ ํ ์ญ์ ํ๋ค.
๐ branch02๊ฐ ํ์ฑํ ๋ ์ํ์์ ์ญ์ ์ ์๋ฌ
๋ฐ์๋น@์๋น์gram MINGW64 ~/OneDrive/Documents/git_ws/HelloGit (branch02)
$ git branch -d branch02
error: cannot delete branch 'branch02' used by worktree at 'C:/Users/solbi/OneDrive/Documents/git_ws/HelloGit'
๐ master๋ก ์ด๋
๋ฐ์๋น@์๋น์gram MINGW64 ~/OneDrive/Documents/git_ws/HelloGit (branch02)
$ git checkout master
Switched to branch 'master'
Your branch is up to date with 'origin/master'.
๐ branch02์ญ์
๋ฐ์๋น@์๋น์gram MINGW64 ~/OneDrive/Documents/git_ws/HelloGit (master)
$ git branch -d branch02
Deleted branch branch02 (was 40b9102).
๐ branch ์กฐํ (์ญ์ ํ์ธ)
๋ฐ์๋น@์๋น์gram MINGW64 ~/OneDrive/Documents/git_ws/HelloGit (master)
$ git branch
branch01
* master
๐ branch01 ์ญ์
๋ฐ์๋น@์๋น์gram MINGW64 ~/OneDrive/Documents/git_ws/HelloGit (master)
$ git branch -d branch01
Deleted branch branch01 (was 40b9102).
๐ local์ branch๋ ๋ชจ๋ ์ญ์ ๋์์ผ๋, remote์๋ ์์ง ๋ฐ์๋์ง ์์์ผ๋ฏ๋ก ์ ์ฉ์ ํด์ฃผ์ด์ผํจ
๋ฐ์๋น@์๋น์gram MINGW64 ~/OneDrive/Documents/git_ws/HelloGit (master)
$ git branch -a
* master
remotes/origin/HEAD -> origin/master
remotes/origin/branch01
remotes/origin/branch02
remotes/origin/master
๐งท Branch (Local โ Remote) ์ญ์ ์ ์ฉ
git push origin --delete <branchname>
๐ branch02 ์ญ์
๋ฐ์๋น@์๋น์gram MINGW64 ~/OneDrive/Documents/git_ws/HelloGit (master)
$ git push origin --delete branch02
To https://github.com/sxlbl/HelloGit.git
- [deleted] branch02
๐ branch01 ์ญ์
๋ฐ์๋น@์๋น์gram MINGW64 ~/OneDrive/Documents/git_ws/HelloGit (master)
$ git push origin --delete branch01
To https://github.com/sxlbl/HelloGit.git
- [deleted] branch01
๐ ์ญ์ ํ์ธ
๋ฐ์๋น@์๋น์gram MINGW64 ~/OneDrive/Documents/git_ws/HelloGit (master)
$ git branch -a
* master
remotes/origin/HEAD -> origin/master
remotes/origin/master

-> ์ญ์ ํ์ธ
1. Remote Repository ์์ฑํ๊ธฐ

2. Local ์ Clone
๋ฐ์๋น@์๋น์gram MINGW64 ~/OneDrive/Documents/git_ws/HelloGit (master)
$ cd ..
๋ฐ์๋น@์๋น์gram MINGW64 ~/OneDrive/Documents/git_ws (master)
๐ฉ $ git clone https://sxlbl:{ํ ํฐ๊ฐ}@github.com/sxlbl/branch_project.git
Cloning into 'branch_project'...
remote: Enumerating objects: 4, done.
remote: Counting objects: 100% (4/4), done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 4 (delta 0), reused 0 (delta 0), pack-reused 0
Receiving objects: 100% (4/4), done.

3. Branch ์์ฑ ํ ์ด๋
๋ฐ์๋น@์๋น์gram MINGW64 ~/OneDrive/Documents/git_ws (branch01)
$ cd branch_project/
๐ฉ branch02 ์์ฑ
๋ฐ์๋น@์๋น์gram MINGW64 ~/OneDrive/Documents/git_ws/branch_project (main)
$ git branch branch02
๐ฉ branch01 ์์ฑ ์ด๋
๋ฐ์๋น@์๋น์gram MINGW64 ~/OneDrive/Documents/git_ws/branch_project (main)
$ git checkout -b branch01
Switched to a new branch 'branch01'
๐ฉ branch ๋ชฉ๋ก ํ์ธ
๋ฐ์๋น@์๋น์gram MINGW64 ~/OneDrive/Documents/git_ws/branch_project (branch01)
$ git branch -a
* branch01
branch02
main
remotes/origin/HEAD -> origin/main
remotes/origin/main
4. Branch Push
๐ฉ branch02 remote ์ ์ฉ
๋ฐ์๋น@์๋น์gram MINGW64 ~/OneDrive/Documents/git_ws/branch_project (branch01)
$ git push origin branch02
goTotal 0 (delta 0), reused 0 (delta 0), pack-reused 0
remote:
remote: Create a pull request for 'branch02' on GitHub by visiting:
remote: https://github.com/sxlbl/branch_project/pull/new/branch02
remote:
To https://github.com/sxlbl/branch_project.git
* [new branch] branch02 -> branch02
๐ฉ branch01 remote ์ ์ฉ
๋ฐ์๋น@์๋น์gram MINGW64 ~/OneDrive/Documents/git_ws/branch_project (branch01)
$ git push origin branch01
giTotal 0 (delta 0), reused 0 (delta 0), pack-reused 0
tremote:
remote: Create a pull request for 'branch01' on GitHub by visiting:
remote: https://github.com/sxlbl/branch_project/pull/new/branch01
remote:
To https://github.com/sxlbl/branch_project.git
* [new branch] branch01 -> branch01
๐ฉ branch ๋ชฉ๋กํ์ธ
๋ฐ์๋น@์๋น์gram MINGW64 ~/OneDrive/Documents/git_ws/branch_project (branch01)
$ git branch -a
* branch01
branch02
main
remotes/origin/HEAD -> origin/main
remotes/origin/branch01
remotes/origin/branch02
remotes/origin/main

5. Local Branch ์ญ์
๐ฉ branch02 ์ญ์
๋ฐ์๋น@์๋น์gram MINGW64 ~/OneDrive/Documents/git_ws/branch_project (branch01)
$ git branch -d branch02
Deleted branch branch02 (was 4a6c05d).
๐ฉ ํ์ฑํ๋ ์ํ์์๋ ์ญ์ ์๋ฌ
๋ฐ์๋น@์๋น์gram MINGW64 ~/OneDrive/Documents/git_ws/branch_project (branch01)
$ git branch -d branch01
error: cannot delete branch 'branch01' used by worktree at 'C:/Users/solbi/OneDrive/Documents/git_ws/branch_project'
๐ฉ main์ผ๋ก ์ด๋
๋ฐ์๋น@์๋น์gram MINGW64 ~/OneDrive/Documents/git_ws/branch_project (branch01)
$ git checkout main
Switched to branch 'main'
Your branch is up to date with 'origin/main'.
๐ฉ branch01 ์ญ์
๋ฐ์๋น@์๋น์gram MINGW64 ~/OneDrive/Documents/git_ws/branch_project (main)
$ git branch -d branch01
Deleted branch branch01 (was 4a6c05d).
๐ฉ branch ๋ชฉ๋ก ํ์ธ
๋ฐ์๋น@์๋น์gram MINGW64 ~/OneDrive/Documents/git_ws/branch_project (main)
$ git branch -a
* main
remotes/origin/HEAD -> origin/main
remotes/origin/branch01
remotes/origin/branch02
remotes/origin/main
6. Remote Branch ๋ชจ๋ ์ญ์
๋ฐ์๋น@์๋น์gram MINGW64 ~/OneDrive/Documents/git_ws/branch_project (ma
$ git push origin --delete branch02
To https://github.com/sxlbl/branch_project.git
- [deleted] branch02
๋ฐ์๋น@์๋น์gram MINGW64 ~/OneDrive/Documents/git_ws/branch_project (ma
$ git push origin --delete branch01
To https://github.com/sxlbl/branch_project.git
- [deleted] branch01
