Git(2)

수정이·2022년 4월 1일
0

Git

목록 보기
3/5
post-thumbnail

README.md


  • 프로젝트와 저장소를 설명하는 책의 표지와 같은 문서이다. 그러므로 많은 시간을 투자하여 작성해야 한다.
  • 작성방법 참고
[markdown 형식]

# Project Name

## Documentation

### Installation

### Supported Python versions

### More Information

### Contributing

### License

위와 같은 순서로 작성해도 된다.

.gitignore


  • .gitignore : git이 파일을 추적할 때, 어떤 파일이나 디렉터리 등을 추적하지 않도록 명시하기 위해 작성하며, 해당 문서에 작성된 리스트는 수정사항이 발생해도 git이 추적하지 않고 무시한다.

  • *(애스터리스크)를 사용하면 편하게 리스트 작성이 가능하다.

  • gitignore 사이트를 사용하면 자동으로 작성해준다. 단, 포함되어 있지 않은 파일이 있을 수 있으니 유의해야 한다.

    위의 이미지와 같이 개인정보나 API key 등 push하고 싶지 않은 파일들이 있을 때

    .gitignore 파일안에 리스트를 작성해주면 해당 파일들이 수정되어도 추적당하지 않는다.

LICENSE(라이센스)


오픈소스 프로젝트에서 가장 중요한 License는 내가 만들 때에도, 배포할 때에도 가장 신경 써야 한다.

  • MIT License : MIT에서 만든 라이센스로, 모든 행동에 제약이 없으며, 저작권자는 소프트웨어와 관련된 책임에서 완전 자유롭다.

  • Apache License : Apache 재단이 만든 라이센스로, 특허권 관련 내용이 포함되어 있다.

  • GNU General Public License(GPL) : 해당 라이센스가 적용된 소스코드 사용 시 적절한 비용을 지불하거나, 소스코드를 오픈해야 한다.

Branch


branch : 분기점을 생성하여 독립적으로 코드를 변경할 수 있도록 도와주는 모델이다.

Commands

  • git branch : 사용 가능한 로컬 branch를 보여준다.
  • git branch (branch name) : branch를 생성한다.
    branch 이름은 해당 branch에서 무엇을 할 것인지 알 수 있게 이름을 지어야 한다. 단, 너무 길면 안 된다.
  • git branch -r : 사용 가능한 원격 branch를 보여준다.
  • git branch -a : 사용 가능한 모든 branch를 보여준다.
  • git checkout (branch name) : 해당 branch로 이동한다.
    • git checkout -b (branch name) : branch를 생성하고 이동한다.
    • checkout은 flag를 사용하여 새로 branch를 생성할 수도 있고, branch 이동도 가능하고, Working Tree 파일들을 복원할 수도 있다. 하나의 명령어에 여러 기능이 들어있기 때문에 최근 Git 버전에서는 switch, restore 명령어를 도입하여 checkout의 기능을 분할하였다.
  • git switch (branch name) : 해당 branch로 이동한다.
    • git switch -c (branch name) : branch를 생성하고 이동한다.
  • git restore (파일명) : 특정 파일을 HEAD Commit로 복구한다.
    • git restore --source (commit hash) (파일명) : 특정 파일을 특정 커밋으로 복구한다.
    • git restore --staged (파일명) : Staging Area에 올라간 파일을 다시 Unstaging 한다.
  • git merge (branch name) : 현재 위치한 branch에서 다른 branch를 가져와 병합한다. 가져온다는 표현이 중요하다. 그러므로 현재 어디 branch에 위치해 있는지 확인 후 merge 해야 한다.
  • git branch -D (branch name) : 생명주기가 다 되거나, 필요 없을 때 삭제한다.

Branch 충돌


  • test.py 파일을 main, develop branch에서 같은 라인을 수정 후 커밋을 하였을 때

2개의 branch(main, develop)가 있다.

main에서 test.py를 위와 같이 수정해주고, add commit을 해준다.

branch를 develop로 이동 시켜준 다음 test.py를 수정해준다.

위와 같이 main과 겹치게 수정해주고, add commit을 해주었다.

main branch로 이동 후 merge를 해주면 충돌이 발생하게 된다.
  • 충돌 후 test.py를 보면 아래 사진과 같이 git에서 어떻게 병합할 것인지 표시를 해두었다.

  • test.py를 수정한 후 add, commit을 입력해주면, git에서 자동으로 커밋 메시지를 만들어준다.

  • 그 다음 push를 해주면 완료된다.

0개의 댓글

관련 채용 정보