git에 대한 기본 정리

주현·2023년 11월 14일

git

목록 보기
1/4
post-thumbnail

다른 사람들과 협업을 하면서 git을 사용했지만, 완전히 내것으로 만들기가 힘들었어서, do it git이라는 책을 사서 공부한 내용을 정리해 보았다.


  • 깃 환경 설정하기

    깃을 사용하기 전 사용자 정보를 입력하여야 합니다. → 그래야 어떤 버전을 누가 언제 만들었는지 쉽게 파악 할 수 있기 때문입니다.

    git config -global user.name “사용자이름”
    git config -global user. email “사용자이메일”

  • 깃 저장소 만들기

    git init ( 현재 디렉터리에서 깃을 사용 할 수 있도록 초기화함)

  • 버전 만들기

    • 버전을 만드는 단계에는 <작업트리> → <스테이지> → <저장소>로 된다.
      • 작업트리 : 작업트리는 파일 수정 ,저장 등의 작업을 하는 디렉터리임.
      • 스테이지 : 버전으로 만든 파일이 대기하는 곳임. (예로, 작업트리에서 파일 10개를 수정했는데, 4개만 버전으로 만들려면 이 파일 4개만 스테이지로 넘겨줌.)
      • 저장소: 스테이지에서 대기하고 있던 파일들을 버전으로 만들어 저장하는 곳임.
    • git status 명령어를 작성하면 깃의 상태를 볼 수 있다.
      • 수정한 파일 스테이지에 올리기
        -- git add <파일.txt>
      • 스테이징한 파일 커밋하기
        -- git commit -m “message”
      • 저장소에 저장된 로그 확인
        -- git log
      • 스테이징과 커밋 한꺼번에 처리
        -- git commit -am “message”
        -> 이는 이전에 커밋한 적이 있다면 사용한다.
  • 버전 관리하기

    • git diff
      • 이는 변경 사항에 대해서 확인하는 명령어이다.
      • 어떤 파일을 수정하고 스테이징에 올려놓지 않았을때, 이미 작성된 파일과 방금 수정한 파일의 정보를 확인할 수 있음.
  • 버전 만드는 단계 파일 상태 알기

    • 작업트리에 있는 파일은 tracked, untracked 상태로 나뉜다.
    • 한번 커밋한 파일은 깃이 계속 추적하고 있다는 tracked 상태를 의미한다.
    • 한번도 커밋하지 않은 파일은 untrecked 상태를 의미한다.
    • git log —stat 의 명령어는 커밋과 관련된 파일까지 함께 볼 수 있음
  • 작업 되돌리기

    • 작업 트리에서 수정한 파일 되돌리기
      • git restore <파일.txt>
    • 스테이징한 파일을 되돌리기
      • git restore -staged <파일이름.txt>
    • 최신 커밋한 파일 되돌리기(되돌리면, 작업트리에 수정한 파일로 돌아옴)
      • git reset HEAD^
    • 특정 커밋으로 되돌리기 이 를 사용하면 커밋을 R2로 되돌렸다면 이전에 R3,R4 커밋은 삭제가 됨.
      • git reset —hard “복사한 커밋 해시”

    • 커밋 변경 이력 취소하기( 이것은 R5가 최신 커밋이면, R2의 커밋 해시를 revert하면 R5는 삭제는 안되고 남아있고 R2로 최신커밋을 바꾸게 됩니다.
      • git revert “복사한 커밋 해시”

  • 브랜치

    • git branch <브랜치 이름>
      • 새로운 브랜치가 만들어집니다.

    그런데 여기서 새로운 커밋을 하게 되면 최신 커밋은 work4에만 적용이 되어있는 걸 알 수 있음.

    • git switch <브랜치 이름>
      • 브랜치를 전환할 수 있음.

    • git log -oneline -branches
      • 해당 커밋이 어떤 브랜치에서 만든 것인지 구별 가능

    • git log -oneline -branches -graph
      • 브랜치와 커밋 관계를 좀 더 보기 쉽게 그래프 형태로 표시됨.
    • git log <브랜치1 이름 >..<브랜치2 이름>
      • 브랜치 사이의 차이점을 알 수 있음. 이렇게 작성 시 브랜치2에만 있는 커밋을 보여줌

  • 브랜치 병합

    • 서로 다른 파일 병합하기
      - 처음에 main브랜치에서 git branch <이름>을 적어서 브랜치를 만듭니다.
      - 그리고 main 브랜치에서 새로운 파일 main.txt를 만듭니다. 그 후 커밋 후
      - git switch <새로운 브랜치>로 전환 시킵니다.
      - 그리고 새로운 파일 o2.txt를 만듭니다. 그리고 커밋을 합니다.
      - 그리고 main 브랜치로 다시 전환 후 git merge o2를 하면 병합이 완료가 됩니다
    • 서로 다른 브랜치에서 한 문서의 다른 부분을 수정했을 때 병합하기
      - 위와 똑같은데 그냥 같은 파일에서 다른 부분을 수정하는 것 뿐이다.
    • 같은 부분을 수정했을 때 병합하기
      - 위와 같이 하고나면 에러가 뜨는데, 그럼 vim <해당문서>에서 수정을하고 커밋을 하면됩니다.
    • 브랜치 삭제하기
      - git branch -d <브랜치 이름>
      - 브랜치는 삭제가 되지만 같은 이름으로 다시 브랜치를 만들면 예전에 작업했던 내용이 그대로 나타남.
    • cherry-pick으로 병합하기
      - cherry-pick은 브랜치가 t1,t2,t3 가 있을떄 최신커밋은 t3라고 할때, main브랜치와 t2버전을 병합하고 싶을떄 사용하는 것입니다.
      - 메인 브랜치로 switch를 하고 git cherry-pick <체리픽할 해시>를 쓰면 병합이 됨.

  • 지역 저장소/ 원격 저장소

  • 지역 저장소/ 원격 저장소 연결하기

    • git remote add origin <복사한 주소>
      • 이렇게 하면 주소가 연결이 됩니다. 확인 하고 싶다면, git remote -v 이다.
  • 지역 저장소/ 원격 저장소 동기화

    • git push -u origin master(main)
      • 이는 지역 origin이름을 가지는 서버의 master 브랜치에 현재 브랜치를 업로드함.
      • -u는 지역 저장소의 브랜치를 원격 저장소의 브랜치에 연결하기 위한 것으로 처음 말고는 그 후에는 사용할 필요가 없음.
  • 서로 다른 컴퓨터에서 원격 저장소 함께 사용하기

    • git clone 원격 저장소 주소 <파일이름>
  • 원격 저장소에서 내려받기

    • git pull origin master(main)
      • 원격 저장소을 지역 저장소의 master 브랜치로 가져오라고 하는 것.
  • 원격 브랜치 정보 가져오기

    • 원격 브랜치 정보를 확인 후 커밋을 하기 위함.
      - git fetch
    • 이를 통해 정보를 가져옴.
      • git diff HEAD origin/master(main)
    • 추가된 정보를 확인할 수 있음.
      • git merge origin/master(main)
    • 원격 저장소의 커밋을 확인 후 지역저장소에 합치기
    • 이때까지 한 pull가 fetch,merge를 한번에 처리한 것임.

0개의 댓글