git/git 연습

1 - Git 기초

backend dev 2024. 3. 6. 09:39

Git Init  - git 저장소 생성하기

Git으로 버전 관리를 하고 싶은 디렉토리로 이동 후 git 저장소를 생성해준다. 

cd 경로명

 

원하는 디렉토리로 이동 후 git status 명령어를 통해 현재 위치에 이미 Git저장소가 생성되어있는지 확인합니다.

git status

현재 위치에 git 저장소가 없다는것을 확인

 

 

git init 

git init

명령어를 실행하면, 현재 디렉토리를 기준으로 Git 저장소가 생성됩니다.

 

다시한번 git status를 해보면 

어떤 브랜치인지, 커밋 내역이 표시됩니다. == git 저장소가 잘 생성되었다.

 

 

git remote

방금 생성한 로컬 git 저장소를 github의 원격 저장소(리포지토리)와 연결하고 싶을때 사용하는 명령어

github에 리포지토리 생성후 Code 버튼을 눌러서 HTTPS의 링크를 복사해줍니다.

git remote add 별칭 복사한url

위의 방법 혹은

git remote add origin https://github.com/본인 계정명/리포지토리명.git

 

ex)

git remote add origin https://github.com/wogus4048/git_study_practice.git

 

git remote -v 로 별칭과 연결된 원격 리포지토리에 대해 확인할 수 있다.

 

git commit, git log

새로 파일 생성 후 git status로 Untracked files를 확인한다.

새로 생성된 파일이 Untracked files에 추가됨

 

git add .로 생성되거나 수정된 모든 파일이 커밋 준비 단계에 들어감

 

git commit -m "커밋메시지"

 

git log로 커밋된 내역을 확인할 수 있다.

 

git ignore 연습

 

ignore 연습용 파일 ignore.txt를 만들었다.

git status에 추적되지않고있는 파일로 표시되어있다.

 

.gitignore 파일을 생성후 그 안에 ignore.txt를 추가해서 

ignore.txt를 git 저장소에서 관리하지않도록 한다.

그 후 다시 git status를 해보면

ignore.txt가 사라진것을 확인 할 수 있다.

 

Git push

git push 원격저장소별칭 브랜치
예시 ) git push origin main

에러 발생 -> 원격 레포지토리에 readme 파일이 있고 readme 생성하면서 커밋을 진행했다.

로컬 git 저장소와 커밋내역이 다르므로 오류가 발생한다.

git pull 에러 발생

해결방법

git pull --allow-unrelated-histories origin main

 

https://www.lesstif.com/gitbook/git-push-pull-fatal-refusing-to-merge-unrelated-histories-86311254.html

 

원격저장소에 커밋까지 병합에 성공한후 다시 git push 진행

'
ignore 설정한 파일은 올라와있지않은것을 확인할 수 있다.

 

 

 

 

git clone

원격저장소의 리포지토리를 로컬로 가져오는 방법

 

방금위에서 만든 리포지토리를 다른 디렉토리에 가져오려고한다.

git_clone_prac 디렉토리에 git저장소가 없는것을 확인

 

저장소의 url 복사

 

git clone 복사한url

 

git clone 진행 완료
프로젝트 폴더가 생성된것을 확인할 수 있다.

 

clone과 remote의 차이

clone (동) 복제하다
remote (형) 원격의

 


두 단어의 사전적 정의를 보면 알 수 있듯이,


clone 

 GitHub repository에 있는 내용을 내 로컬(컴퓨터)에 ‘복제’하는 명령어다. 

즉, repository에 있는 파일을 내 로컬의 특정 디렉토리로 가져올 수 있다.

 

remote

 

Git 홈페이지에 보면 “Manage set of tracked repositories”라고 나와있다.

 원격 저장소와의 작업들을 관리하는 명령이다. remote 명령어로 원격 저장소를 연결/확인/변경할 수 있다.

remote add와 clone의 차이에 대해서 묻는다면,
clone은 remote add를 한 다음 pull(또는 fetch & merge)까지 하는 것이라고 할 수 있겠다.

 

git clone 후 remote 된 원격저장소 목록을 보면 알아서 등록되어있다.