●▲■ 개발일기

git 자주 사용하는 명령어 메모. 본문

👉 git

git 자주 사용하는 명령어 메모.

●▲■ PRINT 2025. 4. 4. 10:51
git init  →→  git 초기화(생성)하기

// github 사용을 위해 사용자 이름과 정보설정
git config --global user.name "Your Name"
git config --global user.email youremail@example.com

-------------------------------------------------------------------------------ㆍ

git clone [REPO_URL] [DIR]  →→  Repo 저장소 복제하기

// HTTPS 형식
https://github.com/[USERNAME]/[REPOSITORY_NAME].git
// SSH 형식
git@github.com:[USERNAME]/[REPOSITORY_NAME].git

-------------------------------------------------------------------------------ㆍ

git checkout branch_name  →→  지정한 브랜치로 이동타기

git checkout -t remote_path/branch_name  →→  원격 브랜치 선택하기

git branch branch_name  →→  브랜치 생성하기

git branch -r  →→  원격 브랜치 목록보기

git branch -a  →→  로컬 브랜치 목록보기

git branch -m branch_name change_branch_name  →→  브랜치 이름 바꾸기

git branch -d branch_name  →→  브랜치 삭제하기

git push remote_name — delete branch_name  →→  원격 브랜치 삭제하기 ( git push origin — delete gh-pages )

-------------------------------------------------------------------------------ㆍ

git add file_path  →→  수정한 코드 스테이지에 올리기
1. git add .  →→  현재 디렉토리의 모든 수정사항 스테이지에 올리기
2. git add -A  →→  모든 디렉토리의 모든 수정사항 스테이지에 올리기
3. git add -P  →→  각각의 변경사항을 터미널에서 확인하고 모든 수정사항 스테이지에 올리기 (img파일은 직접 스테이지에 올려야함)

git commit -m “commit_description”  →→  선택한 코드 설명 적기 ( git commit -m “내용”)

git push (remote_name branch_name)  →→  add하고 commit한 코드 git server에 보내기 (git push origin master)

git pull  →→  git서버에서 최신 코드 받아와 merge 하기

git remote update  →→  로컬에 없는 원격 git서버에 생성된 origin 브랜치가 있으면 확인하기

git fetch  →→  git서버에서 최신 코드 받아오기

-------------------------------------------------------------------------------ㆍ

git reflog  →→  commit id 내역 보기

git reset --hard <커밋해시id>  →→  해당 id commit 복구하기

git reset --hard head~4  →→  위 커밋 로그 4번째까지 삭제하기.
git reset --hard 커밋ID

git reset — hard HEAD^  →→  최신 commit 취소 + 스테이지 취소 + 파일 수정하기 전으로 되돌리기(코드 복구불가)

git reset — soft HEAD^  →→  코드는 살리고 commit만 취소하기

git reset — merge  →→  merge 취소하기

git reset — hard HEAD && git pull  →→  git 코드 강제로 모두 받아오기

git reset head@{1}  →→  git reflog로 head번호 확인 후 이동하기

-------------------------------------------------------------------------------ㆍ

// 위 git init 이후 이름&이메일 등록하는 방법과 동일
git config --global user.name “user_name”  →→  git 계정Name 변경하기
git config --global user.email “user_email”  →→  git 계정Mail변경하기
git config --list  →→  설정확인하기

git stash / git stash save “description”  →→  작업 코드 임시 저장하고 브랜치 바꾸기

git stash pop  →→  마지막으로 임시 저장한 작업 코드 가져오기

git branch — set-upstream-to=remote_path/branch_name  →→  git pull no tracking info 에러해결

git pull request  →→  PR하는 이유: 내가 작업한 코드가 있으니 내 브랜치를 당겨 검토 후 병합해주세요!
1. 자연스러운 코드 리뷰를 위해, 혹은 브랜치를 합치기 전에 팀원들에게 알림
2. PR을 받은 관리자는 코드 변경내역을 확인하고 Merge여부를 결정하기 위해

git merge --abort   →→  git pull 하고 나서 아래 에러 메세지가 나올때.
error: You have not concluded your merge (MERGE_HEAD exists).
hint: Please, commit your changes before merging.
fatal: Exiting because of unfinished merge.

-------------------------------------------------------------------------------ㆍ

git log --since="2023-09-01" --until="2023-10-01" --pretty=format:'"%H","%an","%ad","%s"' --date=iso --encoding=UTF-8 > commit_history.csv
→→  커밋히스토리 CSV파일로 다운로드(UTF-8) : 인코딩 안해주면 엑셀파일로 열었을때 한글깨짐.

-------------------------------------------------------------------------------ㆍ

(리눅스) 클라우드 SSH 환경에서 git 연동하기

1. 초기화. (해당폴더에서)
git init

2. 기존 원격 저장소 확인.
git remote -v

3. 기존 origin 제거. (만약 다른 git 저장소에 연동 되어 있다면~)
git remote remove origin

4. 새로운 원격 저장소 추가. (github에서 https URL 복사)
git remote add origin https://github.com/easygoing2/23yellow.git

5. 원격 저장소의 내용을 가져오면서 관련 없는 히스토리도 허용. (만약 다른 git 저장소에 연동 되어 있다면~)
git pull origin main --allow-unrelated-histories

ex) 방금 올린 커밋푸쉬 이전으로 돌아가려고한다. git reset 명령어를 사용하려고 하는데 커밋하기 직전의 수정된 파일들이 Changes Mode에 있었으면 좋겠다면 git reset head@{1}을 사용하자.
git reset head@{0} 명령어에서 숫자는 git reflog에서 해당 커밋을 찾을 수 있다.
보통 head@{0}은 방금 내가 올린 커밋푸쉬이며 그 이전으로 돌아가야 한다면 head@{1}을 적용하면 된다.
git reset head@{1}을 실행하면 해당 커밋으로 롤백되며 그 당시 수정된 코드까지 Changes Mode에서 갖고 있었다.