git

David8·2022년 4월 9일
0

Linux

목록 보기
5/10

git

  1. git이란 --> 내 파일과 프로그램에 대한 버전 관리
    1. 분산 버전 관리 시스템 소프트웨어
    2. 로컬 저장소 사용
    3. local 내에서 git을 이용하여 버전 관리

  1. git/commit 과정
    1. working directory(작업을 하는 곳) --> staging area
      1. add 명령어를 통해
    2. staging area --> git diredtory
      1. commit 명령어를 통해
  2. git 명령어
    1. git add index.html index2.html: 해당 파일들을 staging area로 add
    2. git add . : 모든 파일 add
    3. git add *.html: 확장자가 html 파일들 add
    4. git commit –m “commit msg”: 커밋을 할 때 메시지 작성
    5. git commit “commit msg”: add와 커밋을 동시에 진행
    6. git commit: 메세지 없이 커밋
    7. git status: 현재 깃 저장소 현황 보여줌
    8. git clean -f: 디렉토리를 제외한 파일들만 삭제
    9. git log --pretty=oneline --graph: 그래프 형태로 로그 보여줌
    10. git log --author=Brandon: Brandon이라는 사람이 쓴 로그만 보여줌
    11. git log --oneline: 로그(히스토리)를 한줄 약식으로 보여줌
    12. git rm : 로컬 디렉토리와 git 저장소에서 모두 삭제
    13. git init: 깃 저장소로 초기화
  3. git diff: 워킹 디렉토리와 staging area 비교
  4. git diff --cached: commit 내용과 staging area 비교
  5. git diff commit1 commit2: 커밋과 다른 커밋 비교
    git commit --amend: 마지막 파일 메세지 수정
    git reset --soft HEAD~: head 하나 이전의 것으로 reset, 최종 파일이 working directory와 staging area에 add 됨
    git reset HEAD~2: head 두개 이전의 것으로 reset
    git reset --mixed HEAD~: 최종 파일이 staging area에 add가 되지 않은 상태
    git reset --hard HEAD~: 최종 파일이 wd, staging area에 add가 되지 않음
    git rm sample.txt: sample파일이 untracked인 경우 삭제
    git rm --cached sample.txt: git에서는 삭제, wd에서는 삭제x
    git clone “Remote repo URL”: 현재 폴더 밑에 생성
    git clone “Remote repo URL” abc: abc 폴더 밑에 생성
    git clone -b Lab1 “Remote repo URL” abc: 레포지토리의 특정 branch를 clone
    git remote: 연결된 이름
    git remote -v: 연결된 주소 현황
    git remote add origin “remote repo URL”: origin 별칭으로 해당 주소 연결
    git remote remove origin: 연결 삭제
    git pull 사용법: git pull origin master --> master에 변경된 부분을 origin에 연결된 부분으로 push, 원격 --> 로컬 레포지토리 반영
    git push 사용법: git push [remote][branch]

    git push origin master: origin은 리모트 주소, master는 현재 브랜치
    로컬 --> 원격 리포지토리 반영

git fetch 와 git pull의 차이: fetch는 가지고 와서 새로운 branch를 만듬, pull은 fetch+merg 라고 생각
git branch –h: 브랜치 도움말
git branch -a: 모든 브랜치 의미
git branch: 현재 작업 브랜치
git branch [issue1]: [name]으로 브랜치 생성
git branch –d issue1: 완료된 브랜치 삭제
git branch issue2: issue2 브랜치 생성
git checkout issue2: 이미 생성되어 있는 브랜치로 이동
git checkout –b issue1: 새로운 브랜치 만들고 거기로 이동
git branch –D issue1: 작업 여부와 관계 없이 브랜치 삭제
git checkout master: master 브랜치로 이동
git stash: 다른 작업이 들어온 경우 현재 작업 파일 임시 저장
git stash save: 다른 작업이 들어온 경우 현재 작업 파일 임시 저장
git stash list: 그동안 저장된 리스트 확인
git stash pop: apply + 삭제 --> 원하는 작업 꺼내오고 삭제
git stash apply: 리스트 중 원하는 작업 꺼내와서 작업 진행
git stash drop: 리스트 특정 작업 삭제
git stash clear: 리스트 모든 작업 삭제
git merge TopicA: topicA의 브랜치의 변경사항이 merge됨
git merge --no-ff TopicA: no fast 방식으로 merge
merge conflict 상황설명: 여러 브랜치에서 같은 파일을 수정하고 master 브랜치에서 merge할 때 발생함
merge conflict 해결방법: merge한 파일로 가서 적절히 수정 후, add 와 commit을 진행
revert 와 reset의 차이: reset은 이전의 버전들을 삭제, revert는 돌아갈 파일을 새로 만드는 것(히스토리에서 이력 사항들이 삭제 되지x)
4. git 기본 사용법
1. git init: 폴더를 깃으로 사용 선언
2. git clone [주소]: 주소로 연결

gitignore 파일

  1. git 저장소에서 버전을 관리할 필요가 없는 파일이나 폴더 작성
    1. 실행파일, 목적파일 --> 실행할 때 마다 새로 생성
  2. git 저장소 폴더에 .gitignore 파일 생성 -->
    1. ex) 그 파일 안에 *.o --> 목적파일은 버전 관리 안한다는 의미

github

  1. fork: github 작업 중인 레포를 내 레포로 만드는 것
    1. fork한 파일을 로컬에서 클론 할 때는 https://pat[개인 토큰] 추가해서 클론
  2. pull request: 수정한 부분을 원래 레포로 반영을 요청

0개의 댓글