컴퓨터/git

Visual Studio Code 로 다루는 Git

풍경소리^^ 2023. 2. 24. 08:53

생활코딩

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