본문 바로가기
반응형

Git40

[Git 깃] git alias 별칭(Alias)를 통해서 비교적 긴 명령어를 쉽게 입력할 수 있다. 예를 들어 "checkout" → "co"로 피로감을 줄일 수 있다. config 파일 직접 설정 ~/.gitconfig 파일을 열어서 [alias] 부분에 커맨드 등록하는 방법이다. vi ~/.gitconfig [alias] co = checkout br = branch cm = commit st = status rb = rebase -i git config 명령어 활용 vi 편집 없이 아래 명령어로도 설정할 수 있다. 위에서 보여준 설정을 나열하면 아래와 같다. git config --global alias.co checkout git config --global alias.br branch git config --global al.. 2023. 1. 28.
[Git 깃] git blame git blame 특정 코드가 누가, 언제, 어떤 Commit으로 변경했는지 확인할 수 있는 명령어 git blame {파일명} author와 timestamp 출력 X git blame -s {파일명} 특정 라인[start, end] 까지만 확인 git blame -L {start},{end} {파일명} Commit Hash 값으로 변경 정보 확인 git show {Commit ID} 📌 [Git 깃] git show [Git 깃] git show git show Commit 변경 사항과 Metadata(Hash 값, Commit Message, 수정된 파일 목록, 변경 내용 등) 표시 현재 Branch의 가장 최근 커밋 정보 확인 git show 특정 커밋 정보 화인 git show {Commit H.. 2022. 8. 7.
💻 [Git 깃] 영역별(add, commit, push) 되돌리기 add 취소 git reset HEAD {file명} • 파일명이 없는 경우 add한 파일 전체 취소 • UnStaged (add 전) 상태로 변경하는 것으로 내용 자체는 남아 있다. • commit 상태 및 내용은 변하지 않는다. commit 취소 git reset HEAD^ • commit 취소하고 변경내역을 unstaged 상태 (add 전)로 변경 내용 자체는 삭제되지 않고 파일에 남아 있다. (--mixed 옵션과 동일) * add되어 있는 변경내역도 add "전" 상태로 변경 • --soft 옵션 staged 상태 (add 후)로 commit 취소 git reset --soft HEAD^ • --hard 옵션 commit 취소와 함께 변경 내역 자체를 삭제 git reset --hard HEA.. 2022. 8. 2.
[Git 깃] git revert reset과 마찬가지로 과거로 되돌리기 위한 명령어다. reset과 revert 차이는 실행 후 commit 이력이 남는가? revert는 reset과 달리 commit을 삭제하지 않고 추가한다. git revert {Commit ID} 📍 reset 📍 revert 예시 git log 확인 결과 A → B → C → D commit 이 존재한다. B Commit 수정이 필요한 것을 확인하여 해당 변경내용만 없애고 싶다. 하지만 이미 push 해서 다른 팀원들이 사용하고 있을 수 있어서 commit 이력을 없애기는 부담스럽다. revert로 인해 B commit 당시 변경 내역만 사라진다. (C, D 변경내용 변화 X) 기존 B Commit을 포함해 전체 commit 내역은 그대로 남아있고, revert.. 2022. 7. 31.
[Git 깃] git reset git reset 과거 시점으로 되돌리는 방법으로 크게 3가지 옵션이 있다. * reset 후에는 이전으로 되돌리 수 없으므로 유의해야 한다. git reset {File or Commit ID} • add 된 파일을 unstaged 상태(add 하기 전)로 되돌린다. • 변경 내역 자체는 파일에 남아 있다. --soft • Staging Area 상태로 돌린다. (add 한 상태이면서 commit 하기 전 상태) --mixed (default) • Wokring Directory 상태로 놓는다 (add 하기 전 상태) --hard • 추적(tracked) 되고 있는 파일 변경내역 삭제 • Working Directory에서 삭제하는 것으로 파일 변경 내역을 완전히 삭제하는 것이다. • Untracked.. 2022. 7. 29.
[Git 깃] git rebase 위험성 Rebase 위험성 Rebase는 Merge 보다 commit history를 깔끔하게 해서 유용하지만 rebase 과정에서 생겨나는 커밋은 내용은 같지만 새로운 커밋이기에 다른 사람과 협업하는 경우 곤란해질 수 있다. [Git 깃] git rebase Rebase란? • rebase는 "re" + "base" 로 재배치 하는 것이다. • merge와 비슷한 개념이지만 commit history 결과 차이가 있다. rebase가 commit history 깔끔하게 정리해주는 편이다. • rebase는 commit.. zoosso.tistory.com 시뮬레이션 [My Computer]에 원격 저장소를 clone 하였다. [master]에서 C2, C3 작업을 하였다. 다른 팀원들이 C4, C5, C6 작.. 2022. 5. 22.
[Git 깃] git rebase Rebase란? • rebase는 "re" + "base" 로 재배치 하는 것이다. • merge와 비슷한 개념이지만 commit history 결과 차이가 있다. rebase가 commit history 깔끔하게 정리해주는 편이다. • rebase는 commit 이력을 변경할 수 있기에 다른 사람이 pull 받아서 사용하고 있다면 곤란해질 수 있다. • 다른 브랜치에서 특정 commit 만을 가져오는 것에서 cherry-pick을 활용해 볼 수 있다. • 이전 commit 수정하는 방법으로 -i 옵션을 활용할 수 있다. Merge 방식 merge 명령을 통해 C3, C4와 공통 조상 C2을 사용하는 3-way merge로 새로운 commit (C5)을 만들어 낼 수 있다. Rebase 방식 rebase.. 2022. 5. 17.
[Git 깃] git config 💻 설정된 config 목록 확인 git config --list git config -l 더보기 전체 목록 확인 global 설정만 확인 git config --global --list local 설정만 확인 git config --local --list 💻 특정 항목 config 확인 git config {항목명} 더보기 이름 및 이메일 확인 git config user.name git config user.email 💻 config 설정 (global & local) • 추가한 후 목록에서 확인할 수 있다. git config --global user.name "홍길동" git config --global user.email "zoosso.tistory.com" git config --local u.. 2022. 5. 11.
[Git 깃] git cherry-pick 💻 git cherry-pick (특정 commit 들고오기) git cherry-pick {commit hash1} git cherry-pick {commit hash2} 더보기 💻 행 단위로 구분하지 않고 한줄로 작성 가능 git cherry-pick {commit hash1} {commit_hash2} … 📌 (충돌 시) 해결 방법 • 충돌 해결을 위해 추가(git add) 혹은 삭제(git rm) • git commit 이나 --continue 옵션으로 다시 진행 git add {path} git cherry --continue 📌 (충돌 시) cherry-pick 이전 상태로 되돌리기 (중단) • --abort 옵션 사용 • cherry-pick을 하기 전 상태로 돌아 갈 수 있다. git ch.. 2022. 5. 8.
[Git] UI Application vs Terminal Git은 터미널에서 CMD 명령어를 직접 입력해서 처리할 수 있지만 한편으로 Source Tree나 GitKraken 등 다양한 Application이 있다. Application에서도 Terminal 명령어에서 처리하는 대부분 기능을 처리할 수 있지만 몇몇 기능에서는 제한적이기도 하다. Git은 버전 관리가 주 목적이기 때문에 해당 목적만 달성할 수 있다면 어떠한 방식을 사용해도 상관없겠지만 개인적으로는 좀 더 활용성이 좋은 터미널에서 이용하는 것이 좋다고 생각한다. 그 이유는 먼저 실무 협업이다. 현재 일하는 곳은 물론이고 주변에서도 터미널을 이용하는 경우가 많기 때문에 소스 버전관리 목적을 떠나서 협업하기 위해서는 터미널 숙지가 필요하다. 또한, 처음 입문 했을 때는 Git 자체를 이해하는 것이 중.. 2021. 4. 15.
반응형