Git hub

지옥에서 온 관리자 Git (메타코딩편)

지각생 2022. 3. 19. 16:31
728x90

Git 8강 - Git 기본기 실습 두번째

https://www.youtube.com/watch?v=VlLZDLrASis&list=PL93mKxaRDidFtXtXrRtAAL2hpp9TH6AWF&index=8 

 

1. 작업 폴더 생성 (새 폴더 생성)

C:\Users\Son\Desktop\gitWorkspace

 

2. git 작업 영역 설정

git init

3. 현재 상태 임시 저장

git add .

 

4. 영구 저장

git commit -m "first save"

 

(여기서 git이 완전 처음이라면 사용자 인증을 해주어야 한다.)

$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com

 

Git 9강 - Git 기본기 실습 세번째

https://www.youtube.com/watch?v=CSQma1bSl_A&list=PL93mKxaRDidFtXtXrRtAAL2hpp9TH6AWF&index=9 

 

지난 시간 복습 및 새로운 시나리오 수업

 

1. git init

2. git add .

3. git status

new file : test1.txt

4. git commit -m " first save"

5. git status

내용 없음(변경된 사항 없기 때문)

 

 

수정된 파일을 commit하면

C:\Users\Son\Desktop\gitWorkspace\ex2\.git\refs\heads

안에 master 해쉬값이 최근값으로 바뀐다.


Git 10강 - Git Reset 명령어

https://www.youtube.com/watch?v=asBU9SqAgmI&list=PL93mKxaRDidFtXtXrRtAAL2hpp9TH6AWF&index=10 

되돌리기

 

1. reset hard

: test1 상태로 돌아가고 싶을 때

 

2. reset mixed

: 작업 영역의 내용 변경이 필요할 때

==> text2.txt 내용 수정해서 다시 add하면 인덱스 내용이 바뀜

 

3. reset soft

: commit 로그 변경시

 

hard가 가장 위험한 명령어이긴하나 가장 많이 사용한다.

 


reset soft 실습

 

해쉬값 다 쓸 필요없고 4~5글자만 써주면 된다.

Son@Son-PC MINGW64 ~/Desktop/gitWorkspace/ex03 (master)
$ git log
commit 6133bbdcc3b76e3ec73d0d05e9a059111dc5a35f (HEAD -> master)
Author: latecomer32 <elf9048@naver.com>
Date:   Sat Mar 19 17:21:26 2022 +0900

    두두 번째 사진

commit 99e3160c5605eff16b9400bf7e52b18817aa2fde
Author: latecomer32 <elf9048@naver.com>
Date:   Sat Mar 19 17:20:46 2022 +0900

    first

git reset --soft 99e3

 

이 후엔

다시 수정할 내용으로

git commit -m "수정 내용"

해주면 된다.

 

바로 직전 로그 내용 수정에 용이하다.

Son@Son-PC MINGW64 ~/Desktop/gitWorkspace/ex03 (master)
$ git reset --soft 99e3

Son@Son-PC MINGW64 ~/Desktop/gitWorkspace/ex03 (master)
$ git status
On branch master
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        new file:   "2\353\262\210\354\247\270.txt"


Son@Son-PC MINGW64 ~/Desktop/gitWorkspace/ex03 (master)
$ git log
commit 99e3160c5605eff16b9400bf7e52b18817aa2fde (HEAD -> master)
Author: latecomer32 <elf9048@naver.com>
Date:   Sat Mar 19 17:20:46 2022 +0900

    first

Son@Son-PC MINGW64 ~/Desktop/gitWorkspace/ex03 (master)
$ git commit -m "두번째"
[master acfda5c] 두번째
 1 file changed, 1 insertion(+)
 create mode 100644 "2\353\262\210\354\247\270.txt"

Son@Son-PC MINGW64 ~/Desktop/gitWorkspace/ex03 (master)
$ git log
commit acfda5c05e6d8a2fe8ab4a5a82cadc4a485fd80e (HEAD -> master)
Author: latecomer32 <elf9048@naver.com>
Date:   Sat Mar 19 17:30:20 2022 +0900

    두번째

commit 99e3160c5605eff16b9400bf7e52b18817aa2fde
Author: latecomer32 <elf9048@naver.com>
Date:   Sat Mar 19 17:20:46 2022 +0900

    first

내용을 변경을해서 다시 add 및 commit하고 싶을땐

git reset --mixed 99e3

 

mixed 쓸 일은 사실 잘 없다.

mixed 쓸 바야 새 로그를 하나 더 찍는 편이다.


git reset hard 99e3 을 하면

두번째 로그 파일이 아예 삭제된다.


Git 11강 - Git 복구왕 Reflog

https://www.youtube.com/watch?v=p7Wd3p4hPCA&list=PL93mKxaRDidFtXtXrRtAAL2hpp9TH6AWF&index=11 

 

1. git reflog

: 한번이라도 commit 한 log 기록 모두 다 볼 수 있다.

 


Git 12강 - Git 최종 로그 변경하기

https://www.youtube.com/watch?v=6zrr3rsixH0&list=PL93mKxaRDidFtXtXrRtAAL2hpp9TH6AWF&index=12 

1. git commit --amend -m "second"

: git log에 이력 1개 뿐일 때 commit 명 변경하기

==> git 최초 생성부터 실수라면 폴더 내 git폴더 삭제하고 새로 git init부터 작업해줘도 됨.

 

Son@Son-PC MINGW64 ~/Desktop/gitWorkspace/ex05
$ git init
Initialized empty Git repository in C:/Users/Son/Desktop/gitWorkspace/ex05/.git/

Son@Son-PC MINGW64 ~/Desktop/gitWorkspace/ex05 (master)
$ git add .

Son@Son-PC MINGW64 ~/Desktop/gitWorkspace/ex05 (master)
$ git commit -m "text02"
[master (root-commit) e01c2b0] text02
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 text01.txt

Son@Son-PC MINGW64 ~/Desktop/gitWorkspace/ex05 (master)
$ status
bash: status: command not found

Son@Son-PC MINGW64 ~/Desktop/gitWorkspace/ex05 (master)
$ git log
commit e01c2b0beda35781dd7ff12c265f70ef551f9fd7 (HEAD -> master)
Author: latecomer32 <elf9048@naver.com>
Date:   Sat Mar 19 23:06:11 2022 +0900

    text02

Son@Son-PC MINGW64 ~/Desktop/gitWorkspace/ex05 (master)
$ git commit --amend -m "text01"
[master 005104b] text01
 Date: Sat Mar 19 23:06:11 2022 +0900
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 text01.txt

Son@Son-PC MINGW64 ~/Desktop/gitWorkspace/ex05 (master)
$ git log
commit 005104b73566e3274b889afd51d0d521f8364f23 (HEAD -> master)
Author: latecomer32 <elf9048@naver.com>
Date:   Sat Mar 19 23:06:11 2022 +0900

    text01

 

2. git rebase -i Head ~3

:git branch를 정리할 때 쓰는 방법.


Git 13강 - Git branch 기본개념

https://www.youtube.com/watch?v=6pCg0rcM2q4&list=PL93mKxaRDidFtXtXrRtAAL2hpp9TH6AWF&index=13 

Branch 기본개념 - 중급

 

1. fast-forward-merge

: 형상이 같을 때

 

2. 3-way-merge

: 형상이 다를 때


Git 14강 - 브랜치 fast forward 이해하기

https://www.youtube.com/watch?v=qKdCxP10amA&list=PL93mKxaRDidFtXtXrRtAAL2hpp9TH6AWF&index=14 

 

1. 브랜치 포인터

: commit할 때 생기는 검은 줄은 브랜치 가지가 아닌 시각적 요소.

commit하면 생기는 건 main branch pointer라는 점이다.

 

두번째 commit 시 main branch pointer의 이동

 

아이디 중복체크를 위해 새로운 브랜치를 생성하면

topic branch pointer가 생성되어 아이디 중복체크를 가리킨다.

 

로그인에 있던 main branch pointer가 아래와 내려와서 topic branch와 같은 걸 가리키는 이걸

병합이라고 하지 않고 fast-forward-merge 라고 한다.

 

 

2. 3-way-merge


Git 15강 - fast forward 실습

https://www.youtube.com/watch?v=l9d7vykwAcQ&list=PL93mKxaRDidFtXtXrRtAAL2hpp9TH6AWF&index=15 

 

1. git init

 

2. touch 회원가입.txt

: 회원가입.txt 파일 생성

3. git add.

4. git commit -m "회원가입"

 

5. touch 로그인.txt

6. git add .

7. git commit -m "로그인"

 

8. git branch

9. git branch topic

10. git log

:

commit 2e6fb3d3b603d38bb8eef074c7fdb94676e0cb28 (HEAD -> master, topic)
Author: latecomer32 <elf9048@naver.com>
Date:   Sun Mar 20 02:51:06 2022 +0900

    로그인

commit d742733c11e4412d3f01d6263516c5c856745d92
Author: latecomer32 <elf9048@naver.com>
Date:   Sun Mar 20 02:49:57 2022 +0900

    회원가입

11. git checkout topic

Son@Son-PC MINGW64 ~/Desktop/gitWorkspace/ex06 (master)
$ git checkout topic
Switched to branch 'topic'

Son@Son-PC MINGW64 ~/Desktop/gitWorkspace/ex06 (topic)
$ git branch
  master
* topic

12. touch 아이디중복체크.txt

13. git add .

14. git commit -m "아이디중복체크"

15. git log

Son@Son-PC MINGW64 ~/Desktop/gitWorkspace/ex06 (topic)
$ git log
commit 043ae7b074720958aba9578e688edd902fb2671a (HEAD -> topic)
Author: latecomer32 <elf9048@naver.com>
Date:   Sun Mar 20 02:57:54 2022 +0900

    아이디중복체크

commit 2e6fb3d3b603d38bb8eef074c7fdb94676e0cb28 (master)
Author: latecomer32 <elf9048@naver.com>
Date:   Sun Mar 20 02:51:06 2022 +0900

    로그인

commit d742733c11e4412d3f01d6263516c5c856745d92
Author: latecomer32 <elf9048@naver.com>
Date:   Sun Mar 20 02:49:57 2022 +0900

    회원가입

 

16. git checkout master

: master로 체크아웃하는 순간 아이디중복체크라는 파일이 폴더에서 사라진다.

 

17. git log

commit 2e6fb3d3b603d38bb8eef074c7fdb94676e0cb28 (HEAD -> master)
Author: latecomer32 <elf9048@naver.com>
Date:   Sun Mar 20 02:51:06 2022 +0900

    로그인

commit d742733c11e4412d3f01d6263516c5c856745d92
Author: latecomer32 <elf9048@naver.com>
Date:   Sun Mar 20 02:49:57 2022 +0900

    회원가입

18 git merge topic

:fast-forward 된다.

Son@Son-PC MINGW64 ~/Desktop/gitWorkspace/ex06 (master)
$ git merge topic
Updating 2e6fb3d..043ae7b
Fast-forward
 ...5\264\353\224\224\354\244\221\353\263\265\354\262\264\355\201\254.txt" | 0
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 "\354\225\204\354\235\264\353\224\224\354\244\221\353\263\265\354\262\264\355\201\254.txt"

Git 16강 - three way merge 실습

https://www.youtube.com/watch?v=tmpi9UqXuu8&list=PL93mKxaRDidFtXtXrRtAAL2hpp9TH6AWF&index=16 

1. git init

2. touch 회원가입.txt

3. git add .

4. git commit -m "회원가입"

5. touch 로그인.txt

6. git add .

7. git commit -m "로그인"

8. git log

commit 8d28eab84f3ea96282e73dd35f89d878202718ee (HEAD -> master)
Author: latecomer32 <elf9048@naver.com>
Date:   Sun Mar 20 03:10:09 2022 +0900

    로그인

commit 712f4bfeed7ba9dcd957d42cf39d5d3d9c993344
Author: latecomer32 <elf9048@naver.com>
Date:   Sun Mar 20 03:09:36 2022 +0900

    회원가입

9. git checkout -b topic

: topic 이란 branch를 만들면서 바로 checkout 하는 방법.

 

10. touch 아이디중복체크.txt

11. git add .

12. git commit -m "아이디중복체크"

13. git checkout master

14. touch 글쓰기.txt

15. git add .

16. git commit -m "글쓰기"

17. git log

commit 1af25cbeedc0d1c3ea4d58d237430539006b2aaf (HEAD -> master)
Author: latecomer32 <elf9048@naver.com>
Date:   Sun Mar 20 03:20:11 2022 +0900

    글쓰기

commit 8d28eab84f3ea96282e73dd35f89d878202718ee
Author: latecomer32 <elf9048@naver.com>
Date:   Sun Mar 20 03:10:09 2022 +0900

    로그인

commit 712f4bfeed7ba9dcd957d42cf39d5d3d9c993344
Author: latecomer32 <elf9048@naver.com>
Date:   Sun Mar 20 03:09:36 2022 +0900

    회원가입

18. git branch

: *master

   topic

 

19. git merge topic

: vi 에디터 편집 모드로 들어간다. ( i 누르면 편집할 수 있지만 편집할 필요 없다.)

==> esc

==> :wq

==> enter

Son@Son-PC MINGW64 ~/Desktop/gitWorkspace/ex07 (master)
$ git merge topic
Merge made by the 'recursive' strategy.
 ...5\264\353\224\224\354\244\221\353\263\265\354\262\264\355\201\254.txt" | 0
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 "\354\225\204\354\235\264\353\224\224\354\244\221\353\263\265\354\262\264\355\201\254.txt"

Son@Son-PC MINGW64 ~/Desktop/gitWorkspace/ex07 (master)
$

 

20. git log

: 아래 화살표 키 눌러야 스크롤 아래 내용까지 더 볼 수 있음.

 

Son@Son-PC MINGW64 ~/Desktop/gitWorkspace/ex07 (master)
$ git log
commit edd276b8f822988b2fd91babbb8365ffabc8c410 (HEAD -> master)
Merge: 1af25cb 13e0e09
Author: latecomer32 <elf9048@naver.com>
Date:   Sun Mar 20 03:26:45 2022 +0900

    Merge branch 'topic'

commit 1af25cbeedc0d1c3ea4d58d237430539006b2aaf
Author: latecomer32 <elf9048@naver.com>
Date:   Sun Mar 20 03:20:11 2022 +0900

    글쓰기

commit 13e0e09c2769be3fed81918a0c74eef4ea16dcc3 (topic)
Author: latecomer32 <elf9048@naver.com>
Date:   Sun Mar 20 03:15:22 2022 +0900

    아이디중복체크

commit 8d28eab84f3ea96282e73dd35f89d878202718ee
Author: latecomer32 <elf9048@naver.com>
Date:   Sun Mar 20 03:10:09 2022 +0900

    로그인

commit 712f4bfeed7ba9dcd957d42cf39d5d3d9c993344
Author: latecomer32 <elf9048@naver.com>
Date:   Sun Mar 20 03:09:36 2022 +0900

    회원가입
(END)

Git 17강 - merge 충돌해결

https://www.youtube.com/watch?v=BvXw27Wo9RI&list=PL93mKxaRDidFtXtXrRtAAL2hpp9TH6AWF&index=17 

1. git init

2. touch 로그인.txt

3. git add .

4. git commit -m "로그인"

5. git log

6. git checkout -b topic

7. git branch

Son@Son-PC MINGW64 ~/Desktop/gitWorkspace/ex08 (topic)
$ git branch
  master
* topic

8. git commit -m "로그인 체크박스"

9. git checkout master

10. git add .

11. git commit -m "로그인 라디오버튼"

12. git merge topic

:하면 아래와 같은 충돌이 발생한다.

Son@Son-PC MINGW64 ~/Desktop/gitWorkspace/ex08 (master)
$ git merge topic
Auto-merging 로그인.txt
CONFLICT (content): Merge conflict in 로그인.txt
Automatic merge failed; fix conflicts and then commit the result.
---------
<<<<<<< HEAD
로그인 라디오버튼
=======
로그인 체크박스
>>>>>>> topic
----------

이렇게 충돌난 부분을

---------
로그인 체크박스
----------

수정해주고

 

13. git add .

14. git commit -m "로그인 체크박스 충돌 수정"

15. git log

Son@Son-PC MINGW64 ~/Desktop/gitWorkspace/ex08 (master)
$ git log
commit 5ecdaee56af1bcbba7e5db25c57fae91af8c0022 (HEAD -> master)
Merge: c5d0d2d 5b24511
Author: latecomer32 <elf9048@naver.com>
Date:   Sun Mar 20 05:31:02 2022 +0900

    로그인 체크박스 충돌 수정

commit c5d0d2d7c05b783186392c5136b3b9e5a2139d0f
Author: latecomer32 <elf9048@naver.com>
Date:   Sun Mar 20 05:26:07 2022 +0900

    로그인 라디오버튼

commit 5b24511184e3afd37ec06655afa600b2b41f4118 (topic)
Author: latecomer32 <elf9048@naver.com>
Date:   Sun Mar 20 05:23:19 2022 +0900

    로그인 체크박스

commit 80537f4dac1ecae413e1bbca62621a7ccd03d8d5
Author: latecomer32 <elf9048@naver.com>
Date:   Sun Mar 20 03:39:06 2022 +0900

    로그인
(END)

Git 18강 - rebase로 로그관리

https://www.youtube.com/watch?v=sfv3TvR1QBo&list=PL93mKxaRDidFtXtXrRtAAL2hpp9TH6AWF&index=18 

 

1. git init

2. touch 환경설정.txt

3. git add .

4. git commit -m "환경설정 완료"

5. touch 로그인퇴근.txt

6. git add .

7. git commit -m "로그인퇴근"

8. touch 로그인아파서퇴근.txt

9. git add .

10. git commit -m "로그인아파서퇴근"

11. touch 로그인완료.txt

12. git add .

13. git commit -m "로그인 완료"

14. git log

Son@Son-PC MINGW64 ~/Desktop/gitWorkspace/ex09 (master)
$ git log
commit a5ae9075115eb615a0897aa56eb267cf27d90648 (HEAD -> master)
Author: latecomer32 <elf9048@naver.com>
Date:   Sun Mar 20 15:31:19 2022 +0900

    로그인 완료

commit 9ca069ff11f456a1d7067df19cc95fb6f22f40e3
Author: latecomer32 <elf9048@naver.com>
Date:   Sun Mar 20 15:30:46 2022 +0900

    로그인아파서퇴근

commit ef84bcf0d576de58725ea52c7146de5d60d8caf2
Author: latecomer32 <elf9048@naver.com>
Date:   Sun Mar 20 15:29:44 2022 +0900

    로그인퇴근

commit 7468c4cfff49e134535708295c5fd82fa828d5ec
Author: latecomer32 <elf9048@naver.com>
Date:   Sun Mar 20 15:29:16 2022 +0900

    환경설정
(END)

15. git rebase -i HEAD~3

pick ef84bcf 로그인퇴근
pick 9ca069f 로그인아파서퇴근
pick a5ae907 로그인 완료

# Rebase 7468c4c..a5ae907 onto 7468c4c (3 commands)
#
# Commands:
# p, pick <commit> = use commit
# r, reword <commit> = use commit, but edit the commit message
# e, edit <commit> = use commit, but stop for amending
# s, squash <commit> = use commit, but meld into previous commit
# f, fixup [-C | -c] <commit> = like "squash" but keep only the previous
#                    commit's log message, unless -C is used, in which case
#                    keep only this commit's message; -c is same as -C but
#                    opens the editor
# x, exec <command> = run command (the rest of the line) using shell
# b, break = stop here (continue rebase later with 'git rebase --continue')
# d, drop <commit> = remove commit
# l, label <label> = label current HEAD with a name
# t, reset <label> = reset HEAD to a label
# m, merge [-C <commit> | -c <commit>] <label> [# <oneline>]
# .       create a merge commit using the original merge commit's
<rkspace/ex09/.git/rebase-merge/git-rebase-todo [unix] (15:43 20/03/2022)1,1 Top
<Workspace/ex09/.git/rebase-merge/git-rebase-todo" [unix] 31L, 1375B

==> i 눌러서 편집모드 진입

==> pick 9ca0      s 9ca0 로 변경

==> pick a5ae      s a5ae 로 변경

==> esc

==> :wq

==> 엔터

 

 

# This is a combination of 3 commits.
# This is the 1st commit message:

로그인퇴근

# This is the commit message #2:

로그인아파서퇴근

# This is the commit message #3:

로그인 완료

# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
#
# Date:      Sun Mar 20 15:29:44 2022 +0900
#
# interactive rebase in progress; onto 7468c4c
# Last commands done (3 commands done):
#    squash 9ca069f 로그인아파서퇴근
#    squash a5ae907 로그인 완료
<Desktop/gitWorkspace/ex09/.git/COMMIT_EDITMSG [unix] (15:45 20/03/2022)16,1 Top
<Son/Desktop/gitWorkspace/ex09/.git/COMMIT_EDITMSG" [unix] 30L, 948B

==> i 눌러서 편집모드 진입

==> 로그인 퇴근 삭제

==> 로그인아파서퇴근 삭제

==> 로그인 완료 삭제

==> 로그인 완료 삭제 후 로그인으로 변경

==> :wq

==> 엔터

 

16. git log

Son@Son-PC MINGW64 ~/Desktop/gitWorkspace/ex09 (master)
$ git log
commit aff02c86059f53156e3e4d598add0994129d35ed (HEAD -> master)
Author: latecomer32 <elf9048@naver.com>
Date:   Sun Mar 20 15:29:44 2022 +0900

    로그인

commit 7468c4cfff49e134535708295c5fd82fa828d5ec
Author: latecomer32 <elf9048@naver.com>
Date:   Sun Mar 20 15:29:16 2022 +0900

    환경설정

Git 19강 - github push해보기

https://www.youtube.com/watch?v=gVLmKfv2O6I 

 

1. git init

2. touch  프로젝트 설정.txt

3. git add .

4. git commit -m "프로젝트 설정완료"

5. git remote add origin https://github.com/~ 

6. git remote -v

: 어디에 연결되어 있는지 확인해 볼 수 있다. (혹은 git ls-remote)

7. git push origin master

: 파일 업로드하면서 병합.

= origin에 있는 master 라는 가지에 push할게


Git 20강 - github pull해보기

https://www.youtube.com/watch?v=-eEiT5g7aMA 

1. git init

2. git remote add origin https~

3. git remote rm origin

: 연결하다 실수로 잘못 연결한 경우 쓰는 명령어

4. git pull origin master


Git 21강 - github clone해보기

https://www.youtube.com/watch?v=hzpE-opY4VE 

 

1. git clone https~


Git 22강 - github 초보자 기본기 체험하기

https://www.youtube.com/watch?v=qoxkw-n1-Z8 

 

로컬에 없는 origin branch 내려받는 방법 3가지

방법1)

git checkout -b topic

git fetch origin

git merge origin/topic

 

방법2)-개념 쉬움

git checkout -b topic

:브랜치 생성

git pull origin topic

: 다운 및 병합

 

방법3)- 자주 쓴다?

git fetch origin

: origin의 모든 브랜치 다운받기

git checkout -b topic origin/topic

:브랜치 생성 및 병합

 


rebase 다른 방법 (파일은 존재하고 로그만 수정되는거임)

git checkout master

git merge --squash topic


Git 23강 - Remote 브랜치 이해

https://www.youtube.com/watch?v=uA6lzRppb6E 

 


Git 24강 - 혼자서 개발하기 시나리오 체험

https://www.youtube.com/watch?v=zOTCvRryMRM&list=PL93mKxaRDidFtXtXrRtAAL2hpp9TH6AWF&index=24 

 

1. githube에 readme 파일을 만들어야 브랜치가 생성된다.

:  repository만 만들면 git init만 한 것이다.

readme를 만들면 아래 1,2,3,4 단계 모두를 수행한 것이다.

commit할 때 브랜치가 생성된다.

2. git clone https://github.com/latecomer32/blog_alone.git 

:gitworkspace 폴더에서 바로 git bash 열어서 git clone해주면 blog-alone폴더 생성된다.

 

3. 생성된 blog-alone폴더로 들어가서 다시 git bash 생성해주자.

 

4. git log

5. git checkout -b dev

 

6. git checkout -b setting_topic

 

7. git branch

  dev
  main
* setting_topic

8. touch 환경설정.txt

 

9. git add .

 

10 . git commit -m "1. 환경 설정 완료"

 

11. git checkout dev

 

12. git merge --no-ff setting_topic

:원래 fast-forward 관계에서는 log를 안 남기는데

--no-ff 옵션을 주면

fast-forward관계라도 merge log를 남길 수 있다.

이 상태에서 

:wq

하고

 

13. git log

commit 71a6e27b1515afd234b0196300287f524ff37b8c (HEAD -> dev)
Merge: 728d773 276fa12
Author: latecomer32 <elf9048@naver.com>
Date:   Tue Mar 22 13:17:41 2022 +0900

    Merge branch 'setting_topic' into dev

commit 276fa129880a44013072addc4f237cfbc44b7a79 (setting_topic)
Author: latecomer32 <elf9048@naver.com>
Date:   Tue Mar 22 10:54:05 2022 +0900

    환경 설정 완료

commit 728d7736cc9bb8f616e5eac2963c00b6d5cd9d9a (origin/main, origin/HEAD, main)
Author: latecomer32 <89351796+latecomer32@users.noreply.github.com>
Date:   Tue Mar 22 09:27:11 2022 +0900

    Initial commit

14. git checkout -b join_topic

 

15. touch 회원가입.txt

 

16. git add .

 

17. git commit -m "2.회원가입완료"

 

18. git checkout dev

 

19. git merge --no-ff join_topic

 

20. git log

Son@Son-PC MINGW64 ~/Desktop/gitWorkspace/blog_alone (dev)
$ git log
commit 93d50dcf5baf0fcd2626698b9fe4f6de0df294f9 (HEAD -> dev)
Merge: 71a6e27 33ebd31
Author: latecomer32 <elf9048@naver.com>
Date:   Tue Mar 22 13:27:38 2022 +0900

    Merge branch 'join_topic' into dev

commit 33ebd31dccc95e09bfa175f15bb733910dd7b31f (join_topic)
commit 93d50dcf5baf0fcd2626698b9fe4f6de0df294f9 (HEAD -> dev)
Merge: 71a6e27 33ebd31
Author: latecomer32 <elf9048@naver.com>
Date:   Tue Mar 22 13:27:38 2022 +0900

    Merge branch 'join_topic' into dev

commit 33ebd31dccc95e09bfa175f15bb733910dd7b31f (join_topic)
Author: latecomer32 <elf9048@naver.com>
Date:   Tue Mar 22 13:22:21 2022 +0900

    2.회원가입완료

commit 71a6e27b1515afd234b0196300287f524ff37b8c
Merge: 728d773 276fa12
Author: latecomer32 <elf9048@naver.com>
Date:   Tue Mar 22 13:17:41 2022 +0900

    Merge branch 'setting_topic' into dev

commit 276fa129880a44013072addc4f237cfbc44b7a79 (setting_topic)
Author: latecomer32 <elf9048@naver.com>
Date:   Tue Mar 22 10:54:05 2022 +0900

    환경 설정 완료

commit 728d7736cc9bb8f616e5eac2963c00b6d5cd9d9a (origin/main, origin/HEAD, main)
Author: latecomer32 <89351796+latecomer32@users.noreply.github.com>
Date:   Tue Mar 22 09:27:11 2022 +0900

    Initial commit
(END)

 

 

21. git checkout -b login_topic

 

22. touch 로그인.txt

 

23. git add .

 

24. git commit -m "3. 로그인 완료"

 

25. git checkout dev

 

26. git merge --no-ff

 

27. git log

Son@Son-PC MINGW64 ~/Desktop/gitWorkspace/blog_alone (dev)
$ git log
commit dff7730ac5be621cfea519f28fb5355299f936c3 (HEAD -> dev)
Merge: 93d50dc e0ef4f8
Author: latecomer32 <elf9048@naver.com>
Date:   Tue Mar 22 13:34:25 2022 +0900

    Merge branch 'login_topic' into dev

commit e0ef4f8d6a3ffe85e2904a2989ded011dcf04976 (login_topic)
Author: latecomer32 <elf9048@naver.com>
Date:   Tue Mar 22 13:33:32 2022 +0900

    3.로그인 완료

commit 93d50dcf5baf0fcd2626698b9fe4f6de0df294f9
Merge: 71a6e27 33ebd31
Author: latecomer32 <elf9048@naver.com>
Date:   Tue Mar 22 13:27:38 2022 +0900

    Merge branch 'join_topic' into dev

commit 33ebd31dccc95e09bfa175f15bb733910dd7b31f (join_topic)
Author: latecomer32 <elf9048@naver.com>
Date:   Tue Mar 22 13:22:21 2022 +0900

    2.회원가입완료

commit 71a6e27b1515afd234b0196300287f524ff37b8c
Merge: 728d773 276fa12
Author: latecomer32 <elf9048@naver.com>
Date:   Tue Mar 22 13:17:41 2022 +0900

    Merge branch 'setting_topic' into dev

commit 276fa129880a44013072addc4f237cfbc44b7a79 (setting_topic)
Author: latecomer32 <elf9048@naver.com>
Date:   Tue Mar 22 10:54:05 2022 +0900

    환경 설정 완료

commit 728d7736cc9bb8f616e5eac2963c00b6d5cd9d9a (origin/main, origin/HEAD, main)
Author: latecomer32 <89351796+latecomer32@users.noreply.github.com>
Date:   Tue Mar 22 09:27:11 2022 +0900

    Initial commit
(END)

28. rebase하고 싶으면 하고

 

29. git checkout main

 

30. git merge --no-ff dev

 

이제 github에 올리면 되는데 올리기 전에 태그를 달아주자.

 

31. git tag blog1.0.0

 

32. git tag -n

33. git push origin main

:git clone을 했기때문에 git remote 안 해도 된다.

:혹시 아래와 같이 에러 뜨면 자격증명 제거해주면 된다. 이후 다시 push해주기

34. git push --tags origin main

:태그까지 올려주고 싶을땐 --tags 옵션 추가해줘야한다. 보통 master(완성)에서 push할때 태그걸어준다.

나중에 git log해서 태그 있는부분을 보고 '아 여기서 완성된거구나 하고 알 수 있게 된다'

 

35. git checkout dev

 

36. git push origin dev

: topic 말고 main이랑 dev도 push해주는게 좋다.


Git 25강 - 소규모 협업하기 시나리오 1편

https://www.youtube.com/watch?v=W3RAX9ugrUU&list=PL93mKxaRDidFtXtXrRtAAL2hpp9TH6AWF&index=25 

window 자격 증명 관리

 

맥북이면 키체인 로그인에 github이란 로그가 있을거다.

 

깃헙에서 레포지토리 생성하고

 

1. git clone

 

1. touch "환경설정.txt"

 

2. git add .

:git bash 위치를 수정 후

 

3. git commit -m "1.환경설정완료"

 

4. git checkout -b dev

 

5. git push --all

:최초에만 --all 하는게 좋다  

아니면 main, dev 브랜치로 각각 체크아웃해서 push해줘야 하기때문에 번거롭다.

,--all 은 현재 브런치가 어떻든 모든 브런치 다 올린다.

 

6. github에서 setting에 가서 팀원이 내 저장소에 접근할 수 있게 manage access 추가를 해준다.

 

7. 그럼 팀원 계정에서는

초대를 수락한다.

 

8. 브랜치 보호

settings

branches - Add rule

main은 아무나 merge 못하고 승인 받은 사람만 merge 할 수 있도록 체크 해준다.

=>create

branch protection rules 가 생긴걸 확인 할 수 있다.

edit 누르면 수정할 수 있음.

빨간 부분 클릭해서 룰 추가해 주자.

어떤 룰이냐면

dev 브랜치로 가서

다시

Add rule

>> "dev"

>> require a pull request before merging 체크!

>> create


Git 26강 - 소규모 협업하기 시나리오 2편

https://www.youtube.com/watch?v=f03QVArBFu4&list=PL93mKxaRDidFtXtXrRtAAL2hpp9TH6AWF&index=26 

 

1. C:\Users\Son\Desktop\gitWorkspace\소규모협업하기\팀원 폴더에서 git bash 열고

 

2. 팀원 git 아이디로 git clone https~ 해준다.

 

3. 자격증명 관리 삭제가 필요하면 해준다.

 

4. git branch

:main만 보인다! 

dev도 있어야 하는데

5. git checkout -b dev origin/dev

 

6. git branch

   * dev

     main

 

7. 팀장 말고는 자기 topic 브랜치 말고 rebase하지 말 것.

8. git checkout -b join-topic

 

9. touch "회원가입.txt"

 

10. git add .

 

11. git commit -m "2. 회원가입 완료."

 

12. 로컬에서 topic을 dev로 merge해봣자 다른 사람들은 못 본다.

 

13. git push origin join_topic

: push하게 되면 브랜치 3개. 아직 dev에 merge되진 않음.

 

14. dev에 push하려면

상단 탭에 Pull requests

열고

New pull request 클릭

>> dev

>> join_topic 

: dev 브랜치에 join_topic merge해도 될까요 라고 묻는것임

Create pull request하면

write 탭에 text내용 입력하고

create draft pull request는 초안을 올린다는 뜻으로

코드 리뷰 요청하는 것임.

(중간 보고 같은 것)

 

완료 했으면 create pull request로 요청한다. 우린 완료했으므로 create pull request로 보내자.

>> review required

>> merging is blocked

X 표 되어 있다.

 

팀장은

>>Notifications

로 메일 남기는게 좋다.

요청때마다 알림이 오도록

Webhooks는 실시간으로 모니터링할 수 있다.

이게 더 유용하지만

Notifications로 강의 진행.

 

Comment는 초안에 대해 멘트

Request changes는 거절

Approve는 승인

 후

sumit review

팀장이 merge pull request 해버리면 된다.

근데 보통 승인만 해준다.

 

팀원이 pull requests 가서

클릭하고

스크롤 내리면

Merge pull request 보이는데 여기서 눌러도 되고

팀장이 누를수도 있다.

 

15. git push --delete origin join_topic

:개발 끝내고 브랜치 삭제할때.

local에는 남기고 github에는 삭제된다.

 

16. 

 

17.현재 dev에 동기화 안되어있으므로

 

18.

dev브랜치 pull 해

 

19. git checkout dev

 

20. git pull origin dev

: dev 다운


Git 27강 - 소규모 협업하기 시나리오 3편

https://www.youtube.com/watch?v=2mNxZEr1m-M&list=PL93mKxaRDidFtXtXrRtAAL2hpp9TH6AWF&index=27 

거절 시나리오 해보기

1. git checkout -b login_topic

:앞서 얘기한 topic삭제는 로컬에선 join_topic있어도 상관없고 github에는 올리지 말라는 거

 

2. git add .

 

3. git commit -m " 로그인하다가 잠와서 집 감"

 

4. git add .

 

5 git commit -m "3. 로그인 완료"

 

6. git push origin login_topic

 

7. Pull reqeusts 탭으로 가서

 

8. new pull request

 

9. dev <- login_topic

 

10. Write 탭에 구현한 기능 설명 써서

     코드에도 주석 잘 달아 놓기

      Create pull request 보내기

 

11. 

 

12. 

rebase 안 되고 승인요청 보냄.

 

 

13. 깃헙에 올라가고 나면 꼬이므로 강제로 푸쉬한다.

 

14. commit 후 Pull requests 탭에 가 보면 수정되어 있다.

 

15.  텍스트 입력 후 comment

 

16. 팀장 관점에서

 

17. (팀원) git push --delete origin login_topic

 

18. git branch

 

19. git checkout dev

 

20. git pull origin dev

 

다 됐고

 

21. 팀장은 dev를 main으로 옮겨야 한다.

>> git log와 git branch를 보면 동기화가 안되어 있으므로

git pull origin dev 라고 쳐서 동기화한다.

 

22. git checkout main

 

23. git merge --no-ff dev

 

24. git tag blog1.0.0

 

25. git push --tags origin main

 

이러면 끝!

 


https://rogerdudler.github.io/git-guide/index.ko.html

728x90