
git branch$ git branch <branch 이름>
temp 라는 브랜치를 만든다면$ git branch temp

main, temp 브랜치가 Commit 2를 동시에 보고 있음temp 브랜치는 remote server에서 모르고 있음--merged/--no-merged$ git branch --merged: 현재 브랜치의 기준으로 Merged된 브랜치인지? 필터링해 볼 수 있다.

(HEAD->new) $ git branch --merged
main #
* new # 이 브랜치는 위의 'main'과 'poweraid'가 합쳐진 것입니다.
poweraid #
git branch --no-merged: 현재 브랜치의 기준으로 병합 안된 다른 브랜치 있는지?$ git branch -d [제거할 브랜치]$ git branch -D [강제 제거할 브랜치]$ git branch -d poweraid



$ git branch -f [BRANCH] [어디로?]$ git branch -f main HEAD^2main이 origin/main보다 뒤쳐 졌다면, 아래의 명령어로 local/main이 -> origin/main을 가르키게한다.$ git branch main origin/main
git merge
$ git checkout main
$ git merge <병합 먹을 브랜치>$ git merge client
# 충돌 시, 충돌 파일 수정 후
$ git add [충돌 파일1[...]]
$ git commit -m"merge1"
$ git merge new
# 충돌 시, 충돌 파일 수정 후
$ git add [충돌 파일1[...]][
$ git commit -m"merge2"


# 현재 브랜치는 new
$ git merge poweraid
자동 병합: test.txt
충돌 (내용): test.txt에 병합 충돌
자동 병합이 실패했습니다. 충돌을 바로잡고 결과물을 커밋하십시오.

-> 수정

$ git add test.txt # 다시 add
$ git commit -m "merge" or $ git commit --amend # 재 커밋 해야함

git revertgit revert도 reset 처럼 commit을 되돌린다.git revert <되돌아 가고 싶은 commit>git reset과의 차이점은 무엇인가? git reset은 되돌리면 그 이전은 사라짐git revert는 되돌린 것도 유지되고 revert된 것도 commit으로 남음$ git cherry-pick [COMMIT]local/main-> argparse, subprocess updateorigin/main -> dijkstra algorithm
dijkstra algorithm '커밋'만 local/main에 cherrypick하고 싶다.
$ git checkout main # local/main

(HEAD -> main) $ git cherry-pick [cherry-pick할 커밋]
1. git cherry-pick origin/main
2. git cherry-pick e9e6c7c
$ git cherry-pick --skip$ git cherry-pick --abort
dijkstra/dijkstra.py에서 충돌1-1. 문제가 난 파일을 수정하자
본인은 dijkstra.py를 origin/main 기준으로 할거임(HEAD -> main) $ git add dijkstra/dijkstra.py
(HEAD -> main) $ git cherry-pick --continue
수정 후, 저장하고 나오면 커밋 완료
(HEAD -> main) $ git push origin main [-f]
위와 같기 때문에
위와 같이 local 커밋이 생긴 것도 말이 안되서 Error 유발 할 수 있음, 왜냐하면 최종 올릴 커밋 모양은 아래와 같기 때문
