봉황대 in CS

Git Terminal Commands 본문

Computer Science & Engineering

Git Terminal Commands

등 긁는 봉황대 2021. 11. 13. 22:57

내가 자꾸 까먹고 헷갈려서 작성하는 Git 터미널 명령어 정리

(수시로 업데이트 예정)

 

* Git의 구조

< Local > - 로컬 저장소 (Local repository)

1. Working directory

    (1) untracked

    (2) tracked

          (a) unmodified

          (b) modified (수정된)

2. Staging area

3. Git directory (2→3 by commit)

< Server > - 원격 저장소 (Remote repository)

: Git directory (Local → Server by push)

 


❖ Basic Terminal Commands

* Position

❏  현재 위치 (Print working directory)

pwd

❏  현재 directory의 모든 파일 보기 (list files)

ls

❏  상위 directory로 이동

cd ..

❏  홈 directory로 이동 (/Users/euna)

cd ~

❏  원하는 directory로 이동 (파일 이름 입력 중에 tab 치면 자동 완성)

cd directory_name

* Directory

❏  directory 생성

mkdir directory_name

❏  directory 삭제

rm -rf directory_name

* File

❏  파일 생성

touch .file_name

❏  파일 생성 + 내용

echo "contents" > file_name

❖ Git Terminal Commands

❏  git 폴더 생성 (git이 해당 폴더를 관리하기 시작)

     - Finder에서 git 폴더 보는 방법 (숨김 폴더 toggle) : + shift + .

git init

❏  repository의 상태 확인

git status

* Add

   : Working directory의 파일을 Staging area로 옮김

 

❏  모든 파일

 

git add .

❏  원하는 파일만

git add file_route

* Remove

   : Staging directory에 추가된 파일을 다시 Working directory로 내려보냄

 

❏  모든 파일

git rm -r --cached .

❏  원하는 파일만

git rm -cached file_route

* Commit

   : Staging directory에 있는 파일을 Git directory에 저장

 

❏  긴 메세지 (줄 바꿈 가능)

git commit

❏  간략한 메세지 (줄 바꿈 불가능)

git commit -m "message"

❏  현재 브랜치의 commit 이력 확인

git log

❏  commit 덮어쓰기 (commit message 변경 시 많이 사용)

git commit --amend

* Reset

   : commit 취소

 

❏  commit hash(번호)에 해당하는 commit으로 코드 롤백

git reset --hard commit_hash

commit hash? : 6d6b4e1c7a3370299c6a6907dd042d331d0f0761

 


❏  마지막으로 commit 한 사항들만 날려버리기

git reset --hard

❏  commit만 취소, Staging directory로 내려보내기 (코드는 그대로)

git reset --soft

* Remote

   : Local repository & Remote repository 연동

git remote add remote_repository_name remote_repository_address

  ex. git remote add origin https://github.com/eunaJung01/뭐시기...


* Push

   : Local repository 내용 → Remote repository로 업로드

git push remote_repository_name branch_name

   ex. git push origin main

   origin : remote repository URL을 참조하기 위한 대명사! (참고)

 

❏  강제 push

git push remote_repository_name branch_name --force

* Pull

   : Remote repository의 내용 → Local repository로 가져오기

git pull remote_repository_name branch_name

   ex. git pull origin main

 

❏  Local repository에서 생성한 파일 (ex. README.md) 가져오기

git pull remote_repository_name branch_name --allow-unrelated-histories

* Conflict

   : 협업 중 같은 파일을 수정해서 충돌이 발생한 경우

     매번 push 하기 전에 pull 하는 것으로 해결 가능하지만 개 귀찮음

     → branch 사용


* Branch

❏  현재 repository에 존재하는 branch 보여주기

git branch

❏  생성

git branch branch_name

❏  다른 branch로 이동

git checkout branch_name

→ merge 요청은 Github에서 가능

    (1) Compare & pull request 버튼 : 협업 시 많이 사용 (규칙을 만들어서 merge)

    (2) Pull requests 버튼

     ⇒ Merge pull request 버튼


❏  Git 에러 : CRLF will be replaced by LF in .. 해결법

git config --global core.autocrlf true input // 맥
git config --global core.autocrlf true // 윈도우

(발생 이유)

반응형
Comments