Visual Studio Code 로 다루는 Git
생활코딩
https://www.youtube.com/playlist?list=PLuHgQVnccGMAQvSVKdXFiOo51HUD8iQQm
Visual Studio Code 로 다루는 Git
www.youtube.com
VS Code-git-initialize Repository
Ctrl + , 설정으로 들어가서
exclude 숨김처리 해제
../.git 제거
work1.txt - 내용 - 1
work2.txt - 내용 - 2
work3.txt - 내용 - 2
vscode-git-work1.txt-+-커밋
user.name
user.email
Open Git Log
output
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
terminal-New Terminal
git config --global user.email "i1683u@gmail.com"
git config --global user.name "i1683u"
vscode-git-work1.txt-+-커밋
git log
q 빠져나오기
vscode-git-work2.txt,work3.txt-+-커밋
$ git log --oneline --all --graph
* c0554fe (HEAD -> master) work 2
* 2b84630 work 1
Ctrl + Shift + x
git graph 설치
이전 커밋으로 되돌아가기
git checkout 2b84630
git log --all 전체 다 보임
git log --all --oneline
$ git log --oneline --all --graph
* c0554fe (master) work 2
* 2b84630 (HEAD) work 1
현재 vscode 코드 상태는 (HEAD)
이 브런치에서 마지막 버전(master)으로 되돌아오기
git checkout c0554fe
또는
git checkout master 권장
$ git log --oneline --all --graph
* c0554fe (HEAD -> master) work 2
* 2b84630 work 1
git graph 에서는 master에 마우스 올려놓고 오른마우스 checkout branch
Visual Studio Code에서 Git으로 협업하기
https://www.youtube.com/playlist?list=PLuHgQVnccGMD-XRW1zlqC7U2uCzOxyT8u
Visual Studio Code에서 GIT으로 협업하기
www.youtube.com
Remote repository
push
pull
Local repository
git init
work1.txt
v1
git graph
$ git log --oneline --all --graph
* 5f84a05 (HEAD -> master) v1
* c0554fe work 2
* 2b84630 work 1
백업
github.com
원격저장소 만들기
New repository
jeongyongman/git
Creating repository
https://github.com/jeongyongman/git.git
origin 주소를 Local 저장소에 등록하기
vscode - git - ... - Remote - Add Remote
https://github.com/jeongyongman/git.git
origin
$ git log --oneline --all --graph
* 5f84a05 (HEAD -> master) v1
* c0554fe work 2
* 2b84630 work 1
푸시 하자
vscode - git - ... - Push
$ git log --oneline --all --graph
* 5f84a05 (HEAD -> master, origin/master) v1
* c0554fe work 2
* 2b84630 work 1
여기서 master 는 지역 저장소의 master 이고
origin/master 는 원격 저장소의 master 이다.
두번 째 작업
vscode - work1.txt 내용추가
vscode - git - + - v2 - commit
$ git log --oneline --all --graph
* bfdf2ef (HEAD -> master) v2
* 5f84a05 (origin/master) v1
* c0554fe work 2
* 2b84630 work 1
vscode - 상태표시줄 - ↑1
푸시 안된 내용이 한개 있다
vscode - ... - push
$ git log --oneline --all --graph
* bfdf2ef (HEAD -> master, origin/master) v2
* 5f84a05 v1
* c0554fe work 2
* 2b84630 work 1
원격저장소에 있는 데이터를 로컬에 복제하기
github.com
Code
주소 copy
vscode
New Window Ctrl + Shift + n
vscode - git - Clone Repository
https://github.com/jeongyongman/git.git
새폴더-git2
Select Repository Location
pwd
/c/Users/notebook/git2/vscode-git
원본회사=====
work1.txt 내용추가 office3
$ git log --oneline --all --graph
* f597a6e (HEAD -> master) office3
* bfdf2ef (origin/master) v2
* 5f84a05 v1
* c0554fe work 2
* 2b84630 work 1
vscode-git-+-office3-commit-...-push
$ git log --oneline --all --graph
* f597a6e (HEAD -> master, origin/master) office3
* bfdf2ef v2
* 5f84a05 v1
* c0554fe work 2
* 2b84630 work 1
=====복제집
vscode-git-...-pull
$ git log --oneline --all --graph
* c118da7 (HEAD -> master, origin/master, origin/HEAD) office3
* bfdf2ef v2
* 5f84a05 v1
* c0554fe work 2
* 2b84630 work 1
work1.txt 내용추가 home4
vscode-git-+-office3-commit-...-push
$ git log --oneline --all --graph
* 78399a3 (HEAD -> master) home4
* f597a6e (origin/master, origin/HEAD) office3
* bfdf2ef v2
* 5f84a05 v1
* c0554fe work 2
* 2b84630 work 1
vscode-git-push
$ git log --oneline --all --graph
* 78399a3 (HEAD -> master, origin/master, origin/HEAD) home4
* f597a6e office3
* bfdf2ef v2
* 5f84a05 v1
* c0554fe work 2
* 2b84630 work 1
원본회사=====
vscode-git-...-pull
$ git log --oneline --all --graph
* 78399a3 (HEAD -> master, origin/master) home4
* f597a6e office3
* bfdf2ef v2
* 5f84a05 v1
* c0554fe work 2
* 2b84630 work 1
협업
https://github.com/jeongyongman/git
Settings-Collaborators-Add people
동료의 이메일
Add miero@daum.net
동료가 이메일로 링크로 들어가서
Accept invitation
vscode - git - Clone Repository
https://github.com/jeongyongman/git.git
원본left-notebook=====
left-notebook.txt 작성
L1
commit
push
$ git log --oneline --all --graph
* 2746666 (HEAD -> master, origin/master) L1
* 78399a3 home4
* f597a6e office3
* bfdf2ef v2
* 5f84a05 v1
* c0554fe work 2
* 2b84630 work 1
=====복제본right-desktop
right-desktop.txt 작성
R1
commit
error
terminal
git config --global user.email "miero@daum.net"
git config --global user.name "miero"
commit
$ git log --oneline --all --graph
* fd54b38 (HEAD -> master) R1
* 78399a3 (origin/master, origin/HEAD) home4
* f597a6e office3
* bfdf2ef v2
* 5f84a05 v1
* c0554fe work 2
* 2b84630 work 1
git-push
![rejected] 경고
L1이 없는 상태에서 pull하면 안된다
pull=fetch+merge
fetch는 원격저장소에서 읽어오는 것
git-fetch
$ git log --oneline --all --graph
* fd54b38 (HEAD -> master) R1 내가 작업한 최신버전 - 내 것만 원격에 없다
| * 2746666 (origin/master, origin/HEAD) L1 원격master의 최신버전
| /
* 78399a3 home4 다르니까 공통 조상
* f597a6e office3
* bfdf2ef v2
* 5f84a05 v1
* c0554fe work 2
* 2b84630 work 1
우리의 목표는 원격master와 로컬master를 합치는 것이다
origin/master 오른마우스 - merge into current branch - 체크해제 - yes, merge
원격master로 master로 병합해라는 뜻
$ git log --oneline --all --graph
* ba56f1b (HEAD -> master) Merge remote-tracking branch 'origin/master'
| \
| * 2746666 (origin/master, origin/HEAD) L1
* | fd54b38 R1 내가 작업한 최신버전 - 내 것만 원격에 없다
| /
* 78399a3 home4 다르니까 공통 조상
* f597a6e office3
* bfdf2ef v2
* 5f84a05 v1
* c0554fe work 2
* 2b84630 work 1
이제야 push 할 수 있다
git - ... - push
$ git log --oneline --all --graph
* ba56f1b (HEAD -> master, origin/master) Merge remote-tracking branch 'origin/master'
|\
| * 2746666 L1
* | fd54b38 R1 내가 작업한 최신버전 - 내 것만 원격에 없다
|/
* 78399a3 home4 다르니까 공통 조상
* f597a6e office3
* bfdf2ef v2
* 5f84a05 v1
* c0554fe work 2
* 2b84630 work 1
원본left-notebook=====
$ git log --oneline --all --graph
* ba56f1b (origin/master) Merge remote-tracking branch 'origin/master'
|\
| * 2746666 (HEAD -> master) L1
* | fd54b38 R1
|/
* 78399a3 home4
* f597a6e office3
* bfdf2ef v2
* 5f84a05 v1
* c0554fe work 2
* 2b84630 work 1
git - ... - pull
$ git log --oneline --all --graph
* ba56f1b (HEAD -> master, origin/master) Merge remote-tracking branch 'origin/master'
|\
| * 2746666 L1
* | fd54b38 R1
|/
* 78399a3 home4
* f597a6e office3
* bfdf2ef v2
* 5f84a05 v1
* c0554fe work 2
* 2b84630 work 1
병합할 때 선택해 달라고 할 때가 있다
git config --global pull.rebase false 리베이스 하지말고 머지해라
만약 같은 파일을 수정하면 어떻게 될까
원본notebook=====
common.txt----------
-
-
-
-
-
-
-
-
vscode-git-commit-...-push start
$ git log --oneline --all --graph
* 9471dc4 (HEAD -> master, origin/master) start
* ba56f1b Merge remote-tracking branch 'origin/master'
|\
| * 2746666 L1
* | fd54b38 R1
|/
* 78399a3 home4
* f597a6e office3
* bfdf2ef v2
* 5f84a05 v1
* c0554fe work 2
* 2b84630 work 1
=====복제본desktop
vscode-git-...-pull
$ git log --oneline --all --graph
* 9471dc4 (HEAD -> master, origin/master) start
* ba56f1b Merge remote-tracking branch 'origin/master'
|\
| * 2746666 L1
* | fd54b38 R1
|/
* 78399a3 home4
* f597a6e office3
* bfdf2ef v2
* 5f84a05 v1
* c0554fe work 2
* 2b84630 work 1
첫번 째 경우의 수 - 양쪽 다 똑같은 내용을 입력
원본notebook=====
common.txt----------
1
-
-
-
-
-
-
-
vscode-git-commit-...-push L1
$ git log --oneline --all --graph
* 9e4a00d (HEAD -> master, origin/master) L1
* 9471dc4 start
* ba56f1b Merge remote-tracking branch 'origin/master'
|\
| * 2746666 L1
* | fd54b38 R1
|/
* 78399a3 home4
* f597a6e office3
* bfdf2ef v2
* 5f84a05 v1
* c0554fe work 2
* 2b84630 work 1
=====복제본desktop
common.txt----------
1
-
-
-
-
-
-
-
vscode-git-commit-...-push R1
![rejected] 경고
vscode-git-...-pull
$ git log --oneline --all --graph
* 43d1ea1 (HEAD -> master) Merge branch 'master' of https://github.com/jeongyongman/git
|\
| * 9e4a00d (HEAD -> master, origin/master) L1
* | 1758f79 R1
|/
* 9471dc4 start
* ba56f1b Merge remote-tracking branch 'origin/master'
|\
| * 2746666 L1
* | fd54b38 R1
|/
* 78399a3 home4
* f597a6e office3
* bfdf2ef v2
* 5f84a05 v1
* c0554fe work 2
* 2b84630 work 1
vscode-git-...-push
$ git log --oneline --all --graph
* 43d1ea1 (HEAD -> master, origin/master) Merge branch 'master' of https://github.com/jeongyongman/git
|\
| * 9e4a00d L1
* | 1758f79 R1
|/
* 9471dc4 start
* ba56f1b Merge remote-tracking branch 'origin/master'
|\
| * 2746666 L1
* | fd54b38 R1
|/
* 78399a3 home4
* f597a6e office3
* bfdf2ef v2
* 5f84a05 v1
* c0554fe work 2
* 2b84630 work 1
원본notebook=====
vscode-git-...-pull
$ git log --oneline --all --graph
* 43d1ea1 (HEAD -> master, origin/master) Merge branch 'master' of https://github.com/jeongyongman/git
|\
| * 9e4a00d L1
* | 1758f79 R1
|/
* 9471dc4 start
* ba56f1b Merge remote-tracking branch 'origin/master'
|\
| * 2746666 L1
* | fd54b38 R1
|/
* 78399a3 home4
* f597a6e office3
* bfdf2ef v2
* 5f84a05 v1
* c0554fe work 2
* 2b84630 work 1
두번 째 경우의 수 - 양쪽 다 똑같은 내용을 입력
원본notebook=====
common.txt----------
1
-
L2
-
-
-
-
-
vscode-git-commit-...-push L2
$ git log --oneline --all --graph
* 64d3856 (HEAD -> master, origin/master) L2
* 43d1ea1 Merge branch 'master' of https://github.com/jeongyongman/git
|\
| * 9e4a00d L1
* | 1758f79 R1
|/
* 9471dc4 start
* ba56f1b Merge remote-tracking branch 'origin/master'
|\
| * 2746666 L1
* | fd54b38 R1
|/
* 78399a3 home4
* f597a6e office3
* bfdf2ef v2
* 5f84a05 v1
* c0554fe work 2
* 2b84630 work 1
=====복제본desktop
common.txt----------
1
-
-
-
R3
-
-
-
vscode-git-commit-...-push R3
![rejected] 경고 나니까 아에
vscode-git-commit-...-pull R3
$ git log --oneline --all --graph
* a2ed912 (HEAD -> master) Merge branch 'master' of https://github.com/jeongyongman/git
|\
| * 64d3856 (origin/master, origin/HEAD) L2
* | b16b05e R3
|/
* 43d1ea1 Merge remote-tracking branch 'origin/master'
|\
| * 9e4a00d L1
* | 1758f79 R1
|/
* 9471dc4 start
* ba56f1b Merge remote-tracking branch 'origin/master'
|\
| * 2746666 L1
* | fd54b38 R1
|/
* 78399a3 home4
* f597a6e office3
* bfdf2ef v2
* 5f84a05 v1
* c0554fe work 2
* 2b84630 work 1
vscode-git-...-push
$ git log --oneline --all --graph
* a2ed912 (HEAD -> master, origin/master) Merge branch 'master' of https://github.com/jeongyongman/git
|\
| * 64d3856 L2
* | b16b05e R3
|/
* 43d1ea1 Merge remote-tracking branch 'origin/master'
|\
| * 9e4a00d L1
* | 1758f79 R1
|/
* 9471dc4 start
* ba56f1b Merge remote-tracking branch 'origin/master'
|\
| * 2746666 L1
* | fd54b38 R1
|/
* 78399a3 home4
* f597a6e office3
* bfdf2ef v2
* 5f84a05 v1
* c0554fe work 2
* 2b84630 work 1
원본notebook=====
vscode-git-...-pull
$ git log --oneline --all --graph
* a2ed912 (HEAD -> master, origin/master) Merge branch 'master' of https://github.com/jeongyongman/git
|\
| * 64d3856 L2
* | b16b05e R3
|/
* 43d1ea1 Merge branch 'master' of https://github.com/jeongyongman/git
|\
| * 9e4a00d L1
* | 1758f79 R1
|/
* 9471dc4 start
* ba56f1b Merge remote-tracking branch 'origin/master'
|\
| * 2746666 L1
* | fd54b38 R1
|/
* 78399a3 home4
* f597a6e office3
* bfdf2ef v2
* 5f84a05 v1
* c0554fe work 2
* 2b84630 work 1
세번 째 경우의 수 - 양쪽 다 똑같은 내용을 입력
원본notebook=====
common.txt----------
1
-
L2
-
R3
-
L4
-
vscode-git-commit L4
vscode-git-...-push
$ git log --oneline --all --graph
* 8abb536 (HEAD -> master, origin/master) L4
* a2ed912 Merge branch 'master' of https://github.com/jeongyongman/git
|\
| * 64d3856 L2
* | b16b05e R3
|/
* 43d1ea1 Merge branch 'master' of https://github.com/jeongyongman/git
|\
| * 9e4a00d L1
* | 1758f79 R1
|/
* 9471dc4 start
* ba56f1b Merge remote-tracking branch 'origin/master'
|\
| * 2746666 L1
* | fd54b38 R1
|/
* 78399a3 home4
* f597a6e office3
* bfdf2ef v2
* 5f84a05 v1
* c0554fe work 2
* 2b84630 work 1
=====복제본desktop
common.txt----------
1
-
L2
-
R3
-
R4
-
vscode-git-commit R4
vscode-git-...-push
![rejected] 경고 아에
vscode-git-...-pull
충돌
$ git log --oneline --all --graph
* 43ac59f (HEAD -> master) R4
| * 8abb536 (origin/master, origin/HEAD) L4
|/
* a2ed912 Merge branch 'master' of https://github.com/jeongyongman/git
|\
| * 64d3856 L2
* | b16b05e R3
|/
* 43d1ea1 Merge branch 'master' of https://github.com/jeongyongman/git
|\
| * 9e4a00d L1
* | 1758f79 R1
|/
* 9471dc4 start
* ba56f1b Merge remote-tracking branch 'origin/master'
|\
| * 2746666 L1
* | fd54b38 R1
|/
* 78399a3 home4
* f597a6e office3
* bfdf2ef v2
* 5f84a05 v1
* c0554fe work 2
* 2b84630 work 1
common.txt----------
1
-
L2
-
R3
-
LR4
-
vscode-git-commit Merge branch 'master' of 주소
$ git log --oneline --all --graph
* d957a7c (HEAD -> master) Merge branch 'master' of https://github.com/jeongyongman/git
|\
| * 8abb536 (origin/master, origin/HEAD) L4
* | 43ac59f R4
|/
* a2ed912 Merge branch 'master' of https://github.com/jeongyongman/git
|\
| * 64d3856 L2
* | b16b05e R3
|/
* 43d1ea1 Merge branch 'master' of https://github.com/jeongyongman/git
|\
| * 9e4a00d L1
* | 1758f79 R1
|/
* 9471dc4 start
* ba56f1b Merge remote-tracking branch 'origin/master'
|\
| * 2746666 L1
* | fd54b38 R1
|/
* 78399a3 home4
* f597a6e office3
* bfdf2ef v2
* 5f84a05 v1
* c0554fe work 2
* 2b84630 work 1
vscode-git-...-push
$ git log --oneline --all --graph
* d957a7c (HEAD -> master, origin/master, origin/HEAD) Merge branch 'master' of https://github.com/jeongyongman/git
|\
| * 8abb536 (origin/master, origin/HEAD) L4
* | 43ac59f R4
|/
* a2ed912 Merge branch 'master' of https://github.com/jeongyongman/git
|\
| * 64d3856 L2
* | b16b05e R3
|/
* 43d1ea1 Merge branch 'master' of https://github.com/jeongyongman/git
|\
| * 9e4a00d L1
* | 1758f79 R1
|/
* 9471dc4 start
* ba56f1b Merge remote-tracking branch 'origin/master'
|\
| * 2746666 L1
* | fd54b38 R1
|/
* 78399a3 home4
* f597a6e office3
* bfdf2ef v2
* 5f84a05 v1
* c0554fe work 2
* 2b84630 work 1
원본notebook=====
vscode-git-...-pull
$ git log --oneline --all --graph
* d957a7c (HEAD -> master, origin/master) Merge branch 'master' of https://github.com/jeongyongman/git
|\
| * 8abb536 L4
* | 43ac59f R4
|/
* a2ed912 Merge branch 'master' of https://github.com/jeongyongman/git
|\
| * 64d3856 L2
* | b16b05e R3
|/
* 43d1ea1 Merge branch 'master' of https://github.com/jeongyongman/git
|\
| * 9e4a00d L1
* | 1758f79 R1
|/
* 9471dc4 start
* ba56f1b Merge remote-tracking branch 'origin/master'
|\
| * 2746666 L1
* | fd54b38 R1
|/
* 78399a3 home4
* f597a6e office3
* bfdf2ef v2
* 5f84a05 v1
* c0554fe work 2
* 2b84630 work 1