본문 바로가기

나의 FE피봇이야기/git || github

[Git] git과 github set 하기

업데이트 일자(2024.04.30)

완전한 이해를 바탕으로 작성된 글이 아님으로 사전에 언급드립니다.

 

개인적으로 GIT 초보자가 가져야 할 Diagram 이라고 생각한다.

git과 git hub는 다르다.

git은 Local 저장소라 불리며, 3가지 단계로 나줘져 있다.

 

 

드림코딩

 

 

만약 이미 github에 만들어진 데이터를 복사할려면 아래의 URL에 들어가서 'git clone [github URL]' 복사
https://angelplayer.tistory.com/222

 

[Github] Github 저장소(Repository) 생성 & 초기 설정

Repository(저장소) 생성하기 github에 접속하여, Repositories 탭으로 이동하면 [New] 버튼이 있습니다. New 버튼을 누르면 새로운 Repositoy를 생성하는 화면이 나옵니다. 여기서 Repository Name을 설정 한 후 [Cr

angelplayer.tistory.com

 

 

명령어 흐름도


 

1. github에 repository 만들기

github.com에서 'new' 눌러서 쉽게 만드는 것이니 모르면 그냥 검색해서 ㄱㄱ

 

2. 로컬 저장소 만들기(.git 파일 만들기)

개념정리 : 로컬 저장소(local)원격 저장소(remote) 차이점
git 저장소는 자신의 컴퓨터인 로컬 저장소와 서버에 있는 원격 저장소로 나뉜다. local에서 작업한 것은 remote로 push해줘야만 변경사항이 서버에 반영된다. 

 

1) window로 Git Bash 접근하는 방법

현재/앞으로 작업할 폴더 클릭 후 마우스 오른쪽 클릭

원하는 위치에서 git bash cmd 창이 열림 여기서

(git bash 명령어) git init

src 폴더와 동일한 위치에 .git 설치 할 것

 

2) git bash terminal로 접근하는 방법

옆사이트 참조 https://webcorgi.tistory.com/8

git bash 명령어

pwd => 현재 위치 확인
ls => 현재 위치에 있는 모든 파일 확인
cd 폴더 이름 => 폴더 이름으로 위치 변경 (Change Directory)
cd../ => 바로 위의 경로로 이동
git init => 이 폴더를 로컬 저장소로 등록

내가 .git 을 설치할 폴더 위치에 왔다면

(git bash 명령어) git init

 

 

git init 완료 후 .git 파일 생성

 

만약 파일이 안보인다면? 숨김처리 되어있을 수 있으니 옆에 사이트 참조 https://shortcuts.tistory.com/33

 

 

3. 로컬 저장소와 원격 저장소 연결

이제 두 저장소 연결 하기.

git remote add origin [원격 저장소 주소]

 

이 명령어가 의미하는 바는
 
=> [github online 주소]가 너무 길어서 나는 이제부터 이것을 'origin'이라고 부를래

 

원격 저장소 주소 === 1번에서 만든 gibhub repository에서 code버튼을 불러 HTTPS 텝에 적힌 URL 복사

예를 들어, ' https://github.com/simplistudio/demo-github.git ' 이라는 저장소를 만들듬.
해당 저장소를 로컬 git에서 origin이라는 이름으로 다루고 싶다면 다음과 같이 설정하면 됨.

git remote add origin https://github.com/simplistudio/demo-github.git

 

원격 저장소 확인 : git remote -v

현재 github와 연결된 repository 확인하는 방법

//연결된 원격 저장소 확인
git remote -v

 

기존 원격 저장소와 연결 삭제

//기존 원격 저장소와의 연결 삭제
git remote rm(또는 remove) origin[원격 저장소 이름]

 


만약 이미 github에서 만들어진 repository가 있다면 'git remote add [url]' 한 다음에
git pull을 해서 vs code든 뭐든 새롭게 만든 정보를 동기화(?) 해줘야 한다.

만약 새롭게 repository를 만들었다면 git remote update 로 작업을 수행할 것을 권장한다.

 

다음으로 branch 새롭게 만들려고 하는데 아래와 같은 메세지기 오류가 뜬다면

fatal: not a valid object name: 'main'

최초의 commit 를 안해줬서 그런다고 함. 따라서 1) git add . 이후 2) git commit -m "(메시지 내용)"

궁금한 사항은 add commite한 데이터는 최초의 .git 파일에 들어간는 건가?

 

 

 

github branch 생성

git branch <branch 이름>

 

git checkout <위에서 만든 branch 이름 >

 

참조

https://jheaon.tistory.com/22

 

 

bash 에서 github branch 만들기


    작업폴더에서 GitBash 오픈 (Windows경우 파란색 글씨의 master표시 확인)

     1. git branch (생성할 브랜치이름)
        - 브랜치 생성

    2. git checkout (생성한 브랜치이름)
        - 생성한 브랜치로 전환
        - 2번의 브랜치이름과 동일해야 한다.

    3. git push origin (생성한 브랜치이름)
        - 원격 저장소에 반영하기
        - 2,3의 브랜치이름과 동일해야 한다.

참조 https://github.com/TheCopiens/algorithm-study/blob/master/docs/github/howToCreate_branch.md

 

브런치 생성하기

 

[ git/clone ] git 클론 하기(특정 브런치 가져오기)

git clonegit clone -b  git clone: This is the main command for cloning a Git repository.: This is the URL of the remote repository you want to clone from.-b : This option specifies the branch you want to clone. (optional): This is the name of the local di

life-explorer.tistory.com

 

 

 

 

 파일 업로드 준비(저장소 세팅)

git branch -m master main

github 저장소의 기본 branch 이름 main. 따라서 main branch에 파일을 올려줘야 하는데,
역사적인 이유로 git은 branch 이름이 기본으로 master로 되어있다.(git 설치 과정에서 main 등으로 설정 가능)

만약 이미 main 으로 설정되어 있다면 페스

//브랜치 이름 바꾸기
git branch - m master main
//현재 브랜치 이름 확인
git branch

git 브랜치 명칭 디폴트

git config --globa init.defaultBranch [파일 명칭]

 

4. push 전 기본 브런치 설정 하기

에러는 원격 저장소에 기본 branch 설정을 안 해줬기 때문임. 

 

$ git push --set-upstream origin main

Everything up-to-date
branch 'main' set up to track 'origin/main'.

 

참조

https://blog.aaronroh.org/120

 

5.  pull 했는데 병합이 안 될때,

C:\Users\gitProject>git push origin master
To https://github.com/userId/userProject.git
 ! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to 'https://github.com/userId/userProject.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

여기서 merge를 위한 명령어가 필요

it pull origin 브런치명 --allow-unrelated-histories

git에서는 서로 관련 기록이 없는 이질적인 두 프로젝트를 병합할 때 기본적으로 거부한다.
하지만 아래 명령을 사용하면 이러한 이슈를 허용할 수 있다.

 

명령어

git pull origin 브런치명 --allow-unrelated-histories

참조

https://gdtbgl93.tistory.com/63

 

branch 병합 후

1. git add .
2. git commit -m "blash blash"

 

 

 

 

readMe 가져오기

git pull

이유는 모르겠지만

git branch -v 해도 안되는 게 git pull이후 됨.

 

git push

git push 명령어는 remote 저장소에 로컬 커밋을 올리기 위한 명령어.
다음 명령어로 remote 저장소의 어느 브랜치에 커밋을 올릴 것인지 설정할 수 있다.

git push [alias] [branch name]

예시, origin에 해당하는 https://github.com/simplistudio/demo-github.git  의 master 브랜치에 현재 브랜치의 변경 사항을 올리고 싶다면 다음과 같이 쓰면 됨.

git push origin master

 

push가 안된다면 변경 사항이 stage에 있을 꺼고 그것을 commit 후 github에 push 가능

 

전체 간략 버전

https://github.com/TheCopiens/algorithm-study/blob/master/docs/github/howToCreate_branch.md

 

 

참조
https://www.youtube.com/watch?v=YIbi4-CrCqI

https://github.com/TheCopiens/algorithm-study/blob/master/docs/github/howToCreate_branch.md

https://www.youtube.com/watch?v=Z9dvM7qgN9s

https://shortcuts.tistory.com/8