README.md 커밋하기
깃허브에서 새로운 레포를 만들고 선택하면 다음과 같은 설명이 나온다
첫번째 네모 박스의 담긴 내용을 그대로 따라하면 해당 레포에 readme.md파일을 생성할 수 있다.
지금부터는 두 번째 네모 박스의 내용인 깃허브 레포에 파일을 커밋하는 방법을 알아볼 것이다.
깃허브 커밋
설명하기에 앞서, 내용을 요약하자면 아래와 같다.
$ git init
$ git branch -m master main
$ git remote <name> <url>
$ git add <file name>
$ git commit -m "commit message"
$ git branch -M main
$ git push <name> main
각 단계를 천천히 알고 싶거나, 오류가 발생하는 경우,
단계별로 발생할 수 있는 오류를 알고 싶은 경우에 하단 내용을 참고하면 좋다.
1. 계정 정보 입력하기
$ git config user.email --> 이메일 기입
$ git config user.name --> 이름 기입
git을 설치하고 git bash를 열었을 때 먼저 하는 수순이다. 자신이 사용하는 이메일과 이름을 기입한다. download를 선택하고 자신의 사양에 맞는 버젼을 고른 후 git bash here을 포함한 상태로 다운로드 해주면 된다.
git 설치 가이드라인 - https://parkjh7764.tistory.com/39
Git, Git Bash 쉬운 설치/ Git Bash 설치 쉽고 자세한 설명/ 윈도우 OS에서 리눅스 환경 구축하기/ Git Bash
Git Bash라는 것을 설치하기 전에 Git Bash가 무엇인지 부터 알아보고 가자. Git Bash란 무엇인가? 아래 사진을 보면 왼쪽은 우리가 Windows 운영체제에서 주로 쓰는 '명령 프롬프트, cmd'이고 오른쪽 사진
parkjh7764.tistory.com
2. 깃허브에 업로드할 파일이 있는 폴더를 우클릭 한 후 git bash here 누르기
이 단계의 경우 굉장히 중요한데, 단순히 git bash를 선택해 파일을 찾을 경우, 불필요한 파일까지 업로드되는 경우가 생길 수 있다.
이 때, 불필요한 파일을 관리 대상에서 제거시키는 방법인 https://github.com/github/gitignore 을 사용해도 좋다.
3. 현 디렉토리 초기화(저장소 초기화)
$ git init
git init 키워드를 사용해 현재 디렉토리의 내용을 초기화한다. 이 때, 연결하고자 하는 파일 하위목록에 .git 파일이 형성된다. 이 과정은 최초 1회만 실행하면 된다. 만약 파일을 열 때마다 계속 반복하게 되면 추후에 pull and push 과정에서 pull된 파일이 계속 추가되는 현상이 생길 수 있다.
4. 로컬 브랜치를 main으로 설정
github의 초기 브랜치 기본 설정은 master였다. 그러나 최근 main으로 설정이 변경됨에따라 우리도 로컬 브랜치를 main으로 설정해줄 필요가 생겼다.
$ git branch -m master main
git bash의 청록색부분이 master로 설정될 때마다 실행해주면 된다.
5. branch 연결
$ git remote add <name> <url>
$ git remote add origin https://github.com/user_name/repo_name.git
브랜치란 일종의 작업환경이다. 각 브랜치는 서로 독립적이고 병합하지 않으면 영향을 주지 않는다.
관례적으로 branch name은 origin을 사용한다. 그러나, 사용자가 정의하는 이름이여도 괜찮다. 특수문자 사용을 지양한다. url부분에는 해당 레포의 깃허브 주소를 의미하는데, 레포의 오른쪽에 위치한 초록색 code 부분을 선택하면 확인할 수 있다. 이 과정 또한 최초 1회만 실행하면 된다.
윈도우의 경우, cmd 창에서 복붙이 되지 않으면 오른쪽 마우스의 Paste를 누르면 해결된다.
HTTPS, SSH, CLI의 세 종류가 있으며, 필요에 따라 사용하면 된다. 해당 예시에서는 HTTPS를 사용했다.
6. 파일 선택 후 추가
$ git add <file name>
$ git add python.py
$ git add .
add 키워드를 사용하여 파일을 추가한다. 이 때, 해당 폴더에 있는 모든 파일을 일괄 선택할 경우 .을 활용한다. add의 경우 깃 명령어에 해당하는데, 더 자세한 것은 깃 명령어 모음을 참고하기 바란다.
7. 커밋 메시지 작성
$ git commit -m "commit message"
$ git commit -m "Add new file"
커밋 메시지의 경우, 해당 파일의 이슈사항을 기입할 수 있는 중요한 단계이다. 관례적으로 사용하는 커밋 메시지가 있으니 참고 바란다.
8. 브랜치 위치 설정
$ git branch -M main
main 브랜치로 적재한다.
9. 업로드
$ git push <name> main
$ git push origin main
push 키워드를 사용해 파일을 업로드한다. 이 때, 파일의 포함상태를 확인하고 싶다면 아래의 내용을 입력해보면 된다.
$ git status
이 키워드로 현재 add 내역을 확인할 수 있다.
9-1. 현재 레포에 파일이 있는 경우
이 때 push 키워드를 사용할 경우, 에러 메시지를 출력한다. ! [rejected] main -> main (non-fast-forward)
이것은 현재 레포의 내용이 포함되어 있으니 pull을 사용해 내용을 포함시킨 후 다시 push하라는 뜻이다. 이 때 해결 방법은 크게 2가지이다.
9-1-1. 덮어쓰기
$ git push <main> +main
$ git push origin +main
이 방식으로 해결할 경우, 이전에 커밋한 내역을 덮어쓰기때문에 협업 시 상대방의 정보가 유실될 우려가 있다.
9-1-2. pull and push
$ git pull <name> main --allow-unrelated-histories
$ git pull origin main --allow-unrelated-histories
이 방법을 사용했을 때 다음과 같은 오류가 발생한다면, 레포와 연결이 끊겼거나 name을 잘 못 입력했을 수 있다.
$ git remote -v
$ git remote remove <name>
첫번째 키워드는 현재 branch명으로 사용중인 이름과 연결된 레포주소를 보여준다. 이 때 불필요한 branch가 생성되었을 경우 remove를 사용해 이름을 지우고 다시 재연결해주면 해결된다.
'GITHUB' 카테고리의 다른 글
[GitHub]패키지 매니저 변경(Yarn -> NPM) (0) | 2024.07.03 |
---|---|
[GitHub]git pull이 안 될때 조치법 (0) | 2024.07.01 |
[GitHub]push 충돌시 강제 해결법 (0) | 2024.03.31 |
[GitHub].env파일이 원격에 올라갔을 때 조치방법 (0) | 2024.02.21 |
[Github].env파일이 포함된 채로 merge 되었을 때 조치법 (2) | 2024.01.30 |