기술 정리 & CS/기타 지식

Git Command 정리

yubi5050 2022. 4. 27. 18:54

Linus Torvalds 가 만듬. (Distributed Version Control System)
작업 디렉토리(Working Directory, 로컬), 준비 영역(Staging area), 원격 저장소(Repository)로 구성

 

Git 명령어

1. Git 저장소 만들기 - git 파일 생성 및 정보 관리 시작

git init

2. Git에 파일 올리기

git config --global user.names "SeonminKim1"로 내 정보설정
git remote add <별명> <url주소> : git 원격 저장소 주소 지정
git pull <별명> <원하는 branch> : 현재 Branch로 파일 동기화
git add <파일> : 파일 작업 디렉토리에 추가
git commit -m <메시지> : 파일 commit 
git push <별명> HEAD : 원격 저장소로 HEAD 내용을 push

3. Git 강제 pull (덮어쓰기) - local 저장소와 remote 저장소가 서로 git 내용이 다를 때

git pull origin master --allow-unrelated-histories : 내 master에 덮어쓰기

4. Git add 취소, commit 취소 (코드 강제 되돌리기)

# add, commit 되돌리기
git reset HEAD 

# git commit 시점 되돌리기 (REPO에 반영 이미 했을 때)
git reset --hard [commit tag]
git push -f origin main

# git revert는 과거로 되돌렸다는 기록을 남기면서 돌리는 것

5. Git 대용량 업로드 (lfs)

git lfs install : lfs 파일 설치
git lfs track *.exe : 대용량 파일 형식자 등록
git add
git commit

6. Git commit 내용 변경

git commit --amend : commit 내용 수정

7. Git push 후 commit 내용 변경, author 수정 등

git rebase -i HEAD~1 : 몇번째 Commit 으로 갈지
git commit --amend --author= <username> <<useremail>>
git rebase --continue

8. Git fetch - 원격 저장소와 로컬의 git 정보 동기화 / vs pull : 원격 저장소의 내용을 가져와 자동으로 merge 작업을 실행

git rebase -i HEAD~1 : 몇번째 Commit 으로 갈지
git commit --amend --author= <username> <<useremail>>
git rebase --continue

9. Git config

git config --global -> 이 버전을 작업한 사람이 누구이고, 
git config --global user.name "seonmin_git"
git config --global user.email "email"
git config --local user.name <username>
git config --local user.email <useremail>
git config --list : git config

10. Git branch & checkout

# Gti branch 생성 및 변경
git branch exp // exp라는 branch가 생김
git checkout exp // 해당 branch 로 들어가기

# Git branch 삭제 하는법
git checkout main
git branch -d [branch 명] // 로컬 branch 삭제
git push origin :[branch 명] // 원격 저장소 branch 삭제

11. Git status (unstaged (in Working Tree) / staged (In Staging Area) / committed (in local repo)

git status : 상태 확인

12. Git log (전체적인 commit branch 확인)

git log --branches --decorate --graph :  보다 시각화적으로

13. Git merge (main branch에서 다른 branch 들을 합침)

git checkout master 
git merge exp 
git branch -d exp : 기존 branch 삭제
git log --reverse : 맨 처음꺼 보여주기

14. vi .gitignore file

nano .gitignore : 파일을 만듬
git add .gitignore : 하면 등록
# *.class 란 파일을 다 무시하겠다.
# temp/ 란 파일을 다 무시하겠다.
# *.[oa] -> .o나 .a인 파일을 무시하라는 것.

15. git add 올린 것 부분만 내리기

git add restore --staged <제외할 파일/파일명>

16. git stash 해놓기. (다른 brach로 현재 작성 중 내용 옮기기 + 잠시 저장하기)

# 코드 임시 저장
git stash save

# 코드 임시 저장 목록 확인
git stash list

# 임시 저장 코드 가져오기
git checkout 원하는 브랜치명

# 마지막 save한 코드 가져오기
git stash apply

# stash 이름(예 : stash@{1})
git stash apply [stash 이름]

 

17. git merge 진행 중인 것 취소하기

# merge 수정 중인 것 이전으로
git merge --abort

 

18. 작업 branch 변경 사항 원래대로

git checkout .