티스토리 뷰

정리 노트/Git & GitHub

Git Hub 3-5 [14-3]

eyoadgkn 2024. 1. 10. 10:05

3 깃과 브랜치

3-1브랜치란

모든 버전 관리 시스템에는 브랜치라는 개념이 있는데, 버전 관리 시스템에서는 나무가 가지에서 새 줄기를 뻗듯이 여러 갈래로 퍼지는 데이터 흐름을 가리키는 말로 사용을 합니다. 

깃에서는 버전 관리를 시작하면 기본적으로 main 브랜치가 만들어지는데 옛 버전의 깃을 사용하고 있거나, 최신 깃을 설치했더라도 메인 브랜치를 main으로 지정하지 않았다면 master 브랜치로 나탈 수도 있습니다. 이 둘은 이름만 다르지 기본이 되는 브랜치라는 개념은 똑같습니다. 

브랜치는 코드의 독립적인 개발 흐름을 나타냅니다. 브랜치를 사용하면 기존의 코드를 유지한 채 새로운 기능을 개발하거나 버그를 수정할 수가 있습니다. 다른 브랜치에서의 변경 사항과 충돌없이 개발할 수 있습니다. 이것은 여러 개발자가 동시에 작업을 할 때 특히 유용한데, 각자 독립적인 브랜치에서 작업을 한 뒤, 작업이 완료되면 기존의 코드와 병합해서 최종적인 결과물을 만들어 낼 수 있습니다.

3-2 브랜치 만들기 및 이동하기.

 


바탕화면으로 이동 
- $ cd desktop
menual폴더로 이동 
- $ cd menual
menual 폴더 안에 .git 만들기 
- $ git init

스테이지에 work.txt 이동
- $ add work.txt

커밋하기 
- $ git commit -m "work 1" 

로그 확인 - $ git log
(HEAD -> main) [가르키고 있다]

content 2 텍스트 추가 후 저장 
- $ git commit -am "work 2"
contetn 3 텍스트 추가 후 저장 
- $ git commit -am "work 3"

------------------
새 브랜치 만들기 
브랜치 확인하는 명령어 
- $ git branch
브랜치 만드는 명령어 
- $ git branch apple 
- $ git branch google
- $ git branch ms


"*"는 현재 내가 작업하고 있는 브랜치라는 뜻.


커밋하기 
- $ git commit work.txt "content 4"
content 4 를 추가 작성하고 커밋할 경우 main만 content 4 로 나아가고, 나머지 apple,google,ms는 
여전히 content 3에 머물러 있다.


한 줄에 한 커밋씩 보여주기 
- $ git log --oneline

현재 브랜치에서 다른 브랜치로 전환 
- $ git switch apple
=>HEAD가 apple로 향하고 있고, content 4(main 위치)는 보여주지 않는다.

현재 텍스트 파일의 내용 확인 
- $ cat work.txt
apple의 HEAD가 있는 현재의 위치기 때문에 content 3까지 보여준다.

3-3브랜치 정보 확인하기




텍스트 파일에 apple content 4 입력 후 저장. 커밋하기 
- $ git commit -am "apple work 4"
(apple만  apple work 4 에 가있고, 나머지 ms와 google은 work 3에 머물러있다.)
+main은 다른 work4에 아직 존재하고 있다.

브랜치와 커밋 관계를 좀 더 보기 쉽게 그래프 형태로 표시
- $ git log --oneline --branches --graph

★브랜치간의 관계(현재 브랜치 기준)[apple과 main]★
- $ git log apple..main

3-4 브랜치 병합하기

manual-2 파일 만들기
- $ cd .. (현재 manual 폴더에서 나가기)
- $ git init manual-2

manual-2로 폴더 이동 -> work.txt 만들기 -> 스테이지 이동 -> 커밋
- $ cd manual-2
- $ git add work.txt
- $ git commit -m "work 1"

브랜치 "o2" 만들기 -> o2만들어졌는지 확인
- $ git branch o2
- $ git log


main.txt 만들고 main 2입력 후 저장 -> 스테이지 올리기 -> 커밋(-m)
- $ git add main.txt
- $ git commit -m "main work 2"


브랜치를 o2로 스위치 -> o2.txt 만들고 2 입력 후 저장 -> 스테이지 -> 커밋
-$ git switch o2
-$ git add o2.txt
-$ git commit -m "o2 work 2"
(main은 work1에 머무르고 있고, 스위칭한 o2는 o2.txt에 이동이 돼있다.)

★ 병합을 위한 main으로 스위칭 -> o2를 병합★
-$ git switch main
-$ git merge o2
(항상 병합을 할 땐 main이 기준이 되어야 하기 때문에 병합 전 main으로 스위칭을 해준다.)

바탕화면에 manual-3만들고 manual-3로 이동 ->work.txt 만들고 텍스트 작성 후 저장 -> 스테이지 -> 커밋
-$ pwd (현재 위치 보기)
-$ cd .. (폴더 이동)
-$ git init  manual-3
-$ cd manual-3
-$ git add work.txt
-$ git commit -m "work 1"
-$ git log (work1에 main)

-$ git branch o2 (o2 branch 생성)
-$ git commit -am "main work 2"
-$ git log (work2에 main / work1에 o2)

-$ git switch o2(o2로 스위치 전환) / work1 수정 전 텍스트 파일
-$ git commit -am "o2 work 2"
-$ git log

-$ git switch main
-$ git merge o2


충돌 났을 경우 해결하기(텍스트를 서로 같은 줄에 작성 후에 병합을 했을 때에 문제 해결)
manual-4 만들고 이동-> work.txt 만들고 작성 후 저장 -> 스테이지 -> 커밋
pwd - cd .. - git init manual-4 - git add work.txt - git commit -m "work 1"
-$ git branch o2 
-$ git commit -am "work 2"
-$ git switch o2
-$ git commit -am "o2 work 2"
-$ git switch main
-$ git merge o2
★- 직접 손으로 양쪽 브랜치의 내용 참고하고 수정.

깃 브랜치 삭제하기
★-$ git brach -d o2
-$ git log

cherry-pick으로 병합하기
-pwd -cd .. - git init cherry-pick - cd cherry-pick
-$ touch init.txt; git add init.txt; git commit -m "init" (한번에 생성 후 스테이지 - 커밋)
-$ git branch topic (branch 생성)
-$ git log --oneline --all --graph (표 보기)
-$ touch m1; git add m1; git commit -m "m1" (만들고 스테이지 - 커밋)
-$ touch m2; git add m2; git commit -m "m2" (만들고 스테이지 - 커밋)
-$ git log --oneline --all --graph ( 표 보기)
-$ git switch topic
-$ touch t1; git add t1; git commit -m "t1" (만들고 스테이지 - 커밋)
-$ touch t2; git add t2; git commit -m "t2" (만들고 스테이지 - 커밋)
-$ touch t3; git add t3; git commit -m "t3" (만들고 스테이지 - 커밋)
-$ git log --oneline --all --graph ( 표 보기)

-$ git switch main
★-$ git cherry-pick [체리픽할 해시]

-$ ls 


4장 깃허브 시작하기
4-1원격 저장소와 깃허브



바탕화면 loc-git 디렉터리 만들기
-$ pwd - cd .. - git init loc-git - cd loc-git - 
-$ touch fl.txt; git add fl.txt; git commit -m "add a"
-$git log

★-$ git remote add origin 복사한 주소 붙여넣기 (HTTPS 깃허브 내 주소)
★-$ git push -u origin 현재 브랜치(main)

★-$ git remote rm origin *** 주소 잘못 입력했을 경우 지우는 코드
-$ git remote -v 제대로 연결됐는지 확인

4-4 지역 저장소와 원격 저장소 동기화하기

fl.txt에 "b" 추가하고 커밋
-$ git commit -am '"add b"
★-$ git push **아까 -u로 썼기 때문에 후에는 이렇게 생략해서 사용


원격 저장소에서 커밋 내려받기 -git pull
-$ ls
-$ git pull origin main
-$ clip < ~/.ssh/id_ed25519.pub
//SSH는 그냥 Pass


5깃허브로 협업하기

 

5-1 서로 다른 컴퓨터에서 원격저장소 함께 사용하기



-$ git clone HTPPS - https://github.com/doyeong123/test-1.git git_home 
-$ cd git_home -git_home 디렉터리로 이동.
git commit -am "add c"
git push
$ cd ..
$ cd git_office
$ git pull
$ git commit -am "add d"
$ git push
$ cd ..
$ cd git_home
$ git pull

'정리 노트 > Git & GitHub' 카테고리의 다른 글

Git Hub 5 [14-4]  (0) 2024.01.11
Git Hub 1~2 [14-2]  (0) 2024.01.09
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함