Git 27

Git 브랜치 병합 관련 명령어

git merge : 포크된 이력을 가지고 있는 브랜치를 병합한다. 이력에는 갈라져나온 뿌리가 그대로 남아있다. git rebase : merge를 사용하면 히스토리를 볼 때 뿌리가 여러개로 나눠져 있어 보기가 어렵지만 rebase는 베이스를 다시 정의함으로써 새롭게 커밋 라인을 정리하여 히스토리를 깔끔하게 볼 수 있다. git cherry-pick : 다른 브랜치에 있는 커밋을 선택적으로 HEAD가 위치한 브랜치에 적용시킬 때 사용하는 명령어이다. git config user.name, user.email도 변경하여 GitHub에 이미 반영된 값들을 변경 가능하다.

Git 2021.06.28

git switch

브랜치 변경 commad git 새 버전에 맞게 checkout 말고 switch로 사용하기 git switch -c -t / -c: create 옵션, 새로운 브랜치 생성 -t: track 옵션, 새로운 브랜치를 생성했을 때 upstream 브랜치를 설정한다. 항상 새로운 feature 작업할 때 새로운 branch 생성해서 작업하기. 그래야 remote에서 MR도 따로 올라간다. * 원격에 불필요한 merge commit을 최소화하기 위해 switch 후 push 전에 git pull -r(rebase) origin 해주는 것이 좋다. 참고 https://git-scm.com/docs/git-switch Git - git-switch Documentation Switch to a specified b..

Git 2021.01.27

git reset

git reset은 이전 commit으로 돌아가는 것이고 해당 commit 이후의 이력은 사라지는 명령어이다. . : 현재 버전으로 되돌리기(add 무효화) [커밋번호] : 특정 버전으로 되돌리고 이후 커밋 이력 삭제, 파일 내용은 유지 --hard [커밋번호] : 파일 내용까지 되돌림 --soft [커밋번호] : 파일 내용은 그대로 유지하면서 staging area에 올림(add 상태) -merge ORIG_HEAD : 바로 이전 병합 취소 참고 : https://victorydntmd.tistory.com/79

Git 2020.11.14

git diff

git diff를 사용하면 수정된 라인과 수정한 라인을 비교할 수 있다.(color 옵션 키기) git diff --color-words : 수정된 사항을 라인이 아닌 단어로 볼 수 있다. git diff --word-diff : --color-words와 비슷한 포맷으로 출력되지만 지워지고 추가된 단어를 좀 더 명시적으로 표시해준다. git difftool 설정 git config --global diff.tool vimdiff git config --global difftool.prompt false :qa 모든 창 닫고 vi 종료 참고 https://blog.outsider.ne.kr/1011 git diff 에서 변경된 부분을 더 명확하게 보는 방법 :: Outsider's Dev Story `g..

Git 2020.11.14

명령어 자동화 함수 만들기

1. .bash_profile //해당 파일을 수정해야한다. 2. cd or cd ~ //git bash 홈 디렉토리로 이동을 한다. 3. vi .bash_profile //vi 에디터를 실행한다. 4. 해당 함수들을 작성한다. gitpush() { git add . git commit -m "$*" git push origin develop } alias gp=gitpush gitfast() { git checkout main git pull origin main git checkout develop git merge main } alias gf=gitfast 5. source .bash_profile //시스템 환경변수를 등록한다. 6. gitpush "커밋 메세지" //해당 형식으로 사용이 가능하다.

Git 2020.10.12

–allow-unrelated-histories 옵션

local의 동일한 브랜치에서 git pull 시 remote의 master 브랜치를 pull 해오다가 remote의 다른 브랜치를 pull 해오는 경우에 [rejected] master -> master (non-fast-forward)라는 에러가 뜬다. 이는 local의 저장소와 remote의 저장소간에 공통분모가 없는 상황에서 병합을 진행하려고 하기 때문에 생기는 에러이다. 따라서 이 때는 git pull origin master --allow-unrelated-histories 옵션을 사용해주면 된다.(git pull origin {remotebranchname}:{localbranchname} --allow-unrelated-histories도 되는지 확인해보기)

Git 2020.09.29

2-way merge and 3-way merge

2-way merge : 마스터 브랜치를 베이스로 새로운 브랜치를 따서 작업한 뒤 커밋을 진행한 후 두 브랜치를 병합하고 싶을 때 충돌이 나지 않는다면 빨리감기(fast-forward)를 하는 병합 방법이다. 단순히 마스터 브랜치가 가리키고 있는 커밋을 앞으로 이동하는 것이다. 3-way merge : 베이스가 되는 커밋이 마스터가 가리키고 있는 커밋이 아닌 경우이다. 이런 경우 최적의 공통 조상을 찾아서 병합을 해야한다. 이 경우 빨리감기(fast-forward) 방식에서는 생기지 않는 새로운 커밋이 생긴다.

Git 2020.09.26