아카이브

[Git] Git의 주요 작업 및 명령어 본문

Git

[Git] Git의 주요 작업 및 명령어

Rayi 2023. 9. 16. 15:59

Git을 통해 작업할 때는 크게 세 가지 영역을 사용하게 됩니다.

Remote

원격 저장소입니다. 로컬에서 작업한 내역을 최종적으로 갱신시켜야 하는 곳입니다.

Local

원격 저장소를 PC 로 가져온 영역입니다. 실제 작업 내역은 여기에 갱신됩니다.

Workspace

실제로 코드를 짜는 영역입니다. 명시되지는 않으나 commit을 하기 전 까지는 로컬 저장소와 구분됩니다.

 

 

이 세 영역 사이를 오고가기 위해서는 다양한 동작을 수행해야 합니다.

 

아래에 이런 동작들에 관련한 Git에서 사용하는 용어를 정리했습니다.

Init  로컬 환경의 지정된 경로에 로컬 저장소 Local을 새로 생성합니다.
 이 저장소는 git 파일만 가지고 있을 뿐, 어떠한 저장소와도 연결되어 있지 않습니다.
git init
Pull  Fetch + Merge
Remote 저장소를 가져와 Local 저장소와 합칩니다.
git pull [저장소 url]
Push  Local 저장소를 Remote 저장소로 보내 합칩니다. git push [저장소 url]
Fetch  Local 저장소와 비교하여 Remote 저장소의 수정내역을 확인합니다. 확인만 하기 때문에 Pull 처럼 합치지는 않습니다.
 Fetch된 저장소는 임시로 생성된 branch에 저장됩니다.
git fetch
Merge  Fetch로 확인한 저장소를 Local 저장소와 합칩니다. git merge
Clone  Init + Pull = Init + Fetch + Merge
 로컬 환경의 지정된 경로에 로컬 저장소를 만들고, 지정한 Remote 저장소를 가져옵니다.
git clone [저장소 url]
Add  Workspace에서 작업한 수정내역을 staging에 추가합니다.
저장소 내의 파일들 중에서 선택하여 일부만 추가할 수 있습니다.
git add [파일 이름]
Commit  Staging에 추가된 수정 내역을 메세지와 함께 Local 저장소와 합칩니다.
메세지를 통해 Add로 추가된 수정 사항에서 무엇이 바뀌었는 지를 기록할 수 있습니다.
 Add된 모든 파일에 대해 같은 commit 메세지가 표시되기 때문에,
파일별로 다른 메세지를 남기고 싶다면 따로따로 Add > Commit 과정을 수행하면 됩니다.
-m : 커밋 메세지를 입력합니다.
--amend : 현재 커밋을 변경합니다.
git commit -m "[커밋 메세지]"

 

아래는 그외 유용한 명령어들입니다.

Status 저장소의 현재 변경 상태를 나타냅니다. Add로 staging되지 않은 파일들은 수정 표시되지 않습니다. git status
Reset Add로 staging한 파일을 다시 되돌립니다.
--hard : 이전 커밋으로 되돌아갑니다.
git reset [파일 이름]
git reset --hard [commit id]
Log 이때까지의 commit 목록을 나열합니다. 최신 commit 부터 오래된 commit 순서로 보여줍니다.
--pretty=online : commit 목록을 한 줄 단위로 줄여서 보여줍니다.
git log
Show 특정 commit의 내용을 자세히 보여줍니다. git show [commit id (혹은 그 일부) | tag]
Diff 두 commit 사이의 변경점을 보여줍니다. git diff [이전 commit id ] [이후 commit id ]
Tag 특정 commit에 이름을 부여합니다.
그냥 쓰면 현재 부여된 모든 tag들을 표시합니다.
git tag
git tag [tag 이름] [commit id]
Blame 특정 파일에서 각 커밋이 누구에 의해 실행되었는지 보여줍니다.
각 줄마다 커밋 id / 사용자 / 일시 / 코드 순으로 보입니다.
git blame [파일 이름]
Reflog head가 가리켜 온 커밋들의 목록을 나열합니다. git reflog 

 

728x90
Comments