개발새발개발

GIT 원격저장소 gitignore Git revert reset 본문

개발새발개발

GIT 원격저장소 gitignore Git revert reset

birdsfoot 2024. 7. 15. 10:55

 

원격 저장소


  • 원격 저장소 : 코드와 버전 관리 이력을 온라인 상의 특정 위치에 저장하여 여러 개발자가 협업하고 코드를 공유할 수 있는 저장 공간
  • 서비스 : gitlab, github, bitbucket
  • 협업 : 쌓인 커밋을 일치시키는 작업 A(수정) -push-> github -pull->B 
  • 로컬에서 원격으로 보내는 것을 PUSH, 원격 저장소에서 로컬로 가져오는 것을 PULL
  • 로컬 없이 원격에서 바로 복제해오는 것 : CLONE
  • git remote add : 로컬 저장소에 원격 저장소 추가
  • git remote add origin remote_repo_url : origin 추가하는 저장소 이름, 그 뒤는 추가하는 원격 저장소 주소
  • git remote -v : 패치 푸시 링크 확인
  • 푸시하는 법
    git init → git add . → git commit -m"name" →  git push origin master
    처음 원격에 푸시할 때, 로컬과 같은 상태이거나 비어있는 상태여야 오류가 없음
    ※ 원격에서 직접 수정하면 협업 시 동기화가 어려워질 수 있으므로 원격에서 수정하면 안됨!
    (로컬에 없는게 원격에 있으면 아주 힘들어짐...펑!)
    실수로 했다면 git pull 하고 git push 해서 합치면 됨
    평소 로컬에서 작업하기 전 git pull을 통해 원격 저장소와 동기화 한 뒤 작업하는게 좋음
  • git push -u origin master 를 한번 쓴 뒤에는 git push 만 입력해도 됨(pull도 마찬가지)
  • Window - [자격 증명 관리자] - [Windows 자격 증명] - [일반 자격 증명] - 인증 확인 및 편집, 제거 가능
  • git clone remote_repo_url : 원격 저장소 전체를 복제하는 것(다운로드)
    - 클론으로 받은 프로젝트는 이미 git init이 되어있음
  • 원격 저장소 등록
    git init - mkdir name - touch README.md - git add . - git commit - git remote add origin URL* - git remote -v(fetch와 push가 잘 됐는지 확인) - git push -u origin master
    *git hub에서 우측 상단 [+] - new repository 만들면 중간에 링크 뜸
    삭제할 때 : git remote rm  원격_저장소_이름
  •  클론 만드는 법
    가장 상위폴더로 나와서 - git clone URL2**
    repository 새로고침 후 초록색 CODE 부분에서 HTML 코드 복사해서 넣으면 됨
    ※ git pull 할 때는 폴더로 이동해서 링크 끝에 master가 떠야함
  • 클론 받는 법
    git init - git remote add origin URL* - git clone URL**

  • 충돌나면 파일명 우측에 ! 표시가 뜨고, 직접 조정할 수 있도록 편집창이 열림
    수동으로 해도 되고, 위에 있는 Accept~ 중에 선택해도 됨
  • git 초대하는법
    repository 만든 곳에서 setting - accesss - colaborate - 이메일 등록 - 초대장 이메일 발송
  • code . : 현재 위치에서 VS code 실행
  • rm -rf .git : git 파일 모두 삭제

 

 

gitignore


  • git에 특정 파일이나 디렉토리를 추적하지 않도록 설정하는 데 사용되는 텍스트 파일(공유할 필요가 없는 파일)
  • .gitignore 파일을 만들고 거기에 파일명을 추가하면 됨
    폴더 안에 있는거면 folder/file.txt , 폴더를 통째로 지우려면 folder/
  • 이미  git의 관리(add, commit)를 받았던 파일이나 디렉토리는적용이 안됨
    git rm --cached a.txt(파일명) 명령어를 통해 캐시 삭제 필요함
  • https://www.toptal.com/developers/gitignore 
    개발에 필요한 환경(운영체제, 프레임워크, 프로그래밍 언어 등)에 따라 gitignore 목록을 만들어주는 사이트
    공통적으로 제거해야할 것들의 목록을 자동 생성해 줌

 

README.md


  • TIL : Today I Learned
  • 프로젝트에 대한 설명, 사용 방법, 문서화된 정보 등을 포함하는 역할
  • Markdown 형식으로 작성되며 프로젝트의 사용자, 개발자, 혹은 기여자들에게 프로젝트에 대한 전반적인 이해와 활용 방법을 제공하는데 사용
  • 주로 프로젝트의 소개, 설치 및 설정 방법, 사용 예시, 라이선스 정보, 기여 방법 등을 포함
  • 반드시 저장소 최상단에 위치해야 원격 저장소에서 올바르게 출력됨

 

Git revert


  • 특정 commit을 없었던 것으로 바꾸는 것
  • 변경 사항을 안전하게 실행 취소 할 수 있도록 도와주는 순방향 실행 취소 작업
  • 명령어 : git revert commit _id
    공백 또는 `..`를 통해 여러 commit을 한번에 실행취소 가능
    git revert --no-edit commit_id : 편집창(VIM) 안여는 것
    git revert --no-commit commit_id : 자동으로 커밋하지 않고 staging area에만 올리는 것
  • 프로젝트 기록에서 commit을 삭제한 뒤, 그 결과를 담은 commit을 추가하는 재설정 과정
  • untracked 파일은 커밋된 적이 없기 때문에 revert의 영향을 받지 않음
  • 되돌리는 것이지 완전히 삭제되는 것은 아님

  • second(기존 것) commit을 삭제한 뒤 Revert "second" commit 이 새로 생김
  • 터미널 창에서 복사 : 드래그 후 우클릭, 붙여넣을 땐 shift+insert

 

Git Reset


  • 특정 commit으로 되돌아가는 작업
    되돌아간 commit 이후의 commit은 모두 삭제됨
  • git reset --옵션 commit_id
  • 옵션은 삭제되는 commit들의 기록을 어떤 영역에 남겨둘 것인지 조정하는 것
    *옵션 : hard, mixed, soft 3가지
    *영역 : 완전 삭제 , Working directory(add 이전 상태.기본값), Stagingarea(커밋 이전 상태)
  • 첫번째 커밋은 삭제가 안됨
  • 되살리는 법
    1) git reflog  이전 commit 을 모두 보여줌
    2) git reset --hard commit_ID

 

Git undoing


Git restore

  • git restore
    - add하지 않은 상태(Commit이 된 적이 있으며 WD에 현재 있는 상태)
  • 파일 내용을 수정 전으로 되돌리기(최신 commit에 저장된 상태로 되돌리기)
  • 글 작성 -add -  commit - 글 수정 - git restore  filename
  • 원래 파일로 덮어쓰는 원리이기 때문에 수정한 내용 전부 사라짐
  • 수정 취소 후에는 해당 내용을 복원할 수 없으니 필요시 미리 백업해두기

 

  • staging area에 올라간 파일을 Unstage 하는 법(add 하기 전 상태 즉 WD로 보내는 법)
    1. git rm --cached  a.txt : git 저장소에 한번도 commit 하지 않은 파일에 적용 (저장소에 commit이 없음)
    2. git restore --staged a.txt : git 저장소에 commit이 존재하는 경우 사용
  • 외울 필요 없음! git status 쳐서 나오는 것 확인해보면 됨!