Git 도전해보기 ( push까지 )

ThovYoon·2022년 7월 7일
2

About-Git

목록 보기
1/1
post-thumbnail

Git&Github image source

Git에 입문하게되었다.

사실 Git은 대학원생 때 끄적끄적 GitBlog를 만들겠다고 붙잡아서 고생고생했는데, 결국은 에러와 함께 기억 저편에 '언젠가 해야지' 하고 남겨두었었다.

이번에 우연한 기회를 얻어 Git을 배우게 되었다.

GIT 설치는 간단하다.
사용하는 OS에 맞게끔 git을 설치해주면 된다.

이번 글에서는 깃을 Push하고 Pull하는 단계까지 진행해볼 예정이다.


Git 시작

Local Git repository 초기화

git을 실행하면 아무것도 나오지 않는다.
그렇기 때문에 아래와 같이 초기화 명령어를 입력해서 .git 폴더를 생성을 한다.

$ git init

origin repository 연결하기

초기화를 한 후에는 remote 명령어로 원하는 저장소에 연결할 수 있는데 다음과 같다.
( 연결해보고 되는 코드를 사용하도록 한다 )

$ git remote add origin {git address}
$ git remote set-url origin  {git address}

잘 불러와졌는지 ( 연결이 잘 되었는지 ) 확인해보려면 다음 명령어를 입력해보자.

$ git remote -v

origin repository Data load

연결이 됐다면, 지금 부터 작업을 실행할 수 있다. 아래 명령어를 실행해서 git 저장소에 있는 데이터 및 branch들을 불러오도록 한다.

$ git fetch

물론 git clone기능을 사용해서 local에 저장해서 사용할 수도 있는데, 그건...나중이야기로..

$ git clone {repository name}

branch생성 및 이동하기

이제 본격적인 작업단계로 들어가보자. 현재 branch를 확인해보면 아마 master branch일 거다. master branch는 branch중에서도 원본에 해당하기에 함부로 손을 대지 않는다. 따라서 master branch와 파일은 동일한, 작업공간을 만들기로 한다.

$ git branch
	# 현재 작업장소(branch)를 확인할 수 있는 명령어이다.
$ git branch {branch_name}
	# branch_name에 해당하는 branch이름을 기입한다 
    # 보통 master -> develop -> feature 순
$ git branch develop
	# develop branch생성하기
$ git checkout -b develop

이제 develop branch가 생성이 되었다.
또 현재 branch를 확인할 수 있는 지표는 다음과 같다

$ git branch feature/eda
	# develop branch에서 한단게 더 들어간다.

현재 master -> develop -> feature/eda 순으로 branch를 이동했다.
branch는 이동도 할 수 있는데 위에서 사용했던 checkout 명령어를 입력하면 쉽게 할 수 있다.

$ git checkout {branch_name}
	# ex) develop, feature/eda2, master....

생성된 branch push하기

push의 의미는 현재 local에서 온라인 상의 git server에 보낼때 밀어 넣는다 라는 느낌으로 생각하면 쉬웠다.
아래 코드는 git online server에 push명령어를 입력하면 local에서 작업했던 과정( such as. make another branch )이 반영되게 된다.

$ git push origin {branch_name}

값을 넣은 후 commit하기

본격적으로 문서를 활용해보도록 한다. 현재 작업하고있는 저장소 ( 현재는 feature/eda임 )에 새로운 파일(= apple.txt)이 local에서 들어왔다고 생각하자. 그러면 현재 local과 online에 기존에 저장되어있는 내용과는 다른 apple.txt가 있는 것이다. 그럴 경우에 git에 다음과 같은 명령어를 입력한 후, 그 이후 git은 그림과 같은 결과값을 반환하게 된다.

$ git status

apple.txt라는 값이 들어왔는데, 잘 모르겠다~~~
그렇기 때문에 이거 변동사항이 있으니 red color로 알려줄게 라는 뉘앙스이다.

해당 값에 문제가 없다고 판단되면, commit을 진행하도록 한다.
이때 commit 전에는, 어떤 데이터를 commit 할지 알려주어야 한다.

$ git add apple.txt
	# git add 를 통해 apple.txt를 commit 과정으로 넘긴다는 의미이다.
$ git add .
	# 이때 어떤 파일명, 값이 아닌 "." 한개만 있을때는 status에서 알려준 red color 부분을 전부 commit 과정으로 넘기겠다는 의미이다.

아까와는 다르게 green color로 new file : apple.txt로 바뀐것을 확인할 수 있다.
이제! commit을 진행할 수 있다! commit명령어는 다음과 같다
git commit 을 입력한 후 -m을 쓰게되면 해당 commit 내용에 대한 comment를 달 수 있다

$ git commit -m "{message_}"
$ git commit -m "[DATA_EDA]_EDA01"
	# 해당 commit 내용은 향후 [DATA_EDA]_EDA01 로 표시될 것이다.

local 뿐만 아니라 online에까지 올려두기

현재까지 한작업은 local상에서만 진행된 것이다! online에는 우리가 올리기까지 '절대'반영되지 않는다. 내 작업공간인 feature/eda에 작업물에 대한 결과물을 올려놓도록 한다.

$ git push origin feature/eda

작업물을 올리는 단계까지 끝났다. 이제 github에서 해당 저장소에 branch, develop, feature/eda가 잘 생성됐는지 확인하고, 데이터도 잘 올라가 있는지 확인하도록 한다.


내가 이번에 이해한 git의 전체 Flow는 다음과 같다

master branch는 원본
develop branch는 작업을 위한 원본 copy, 작업의 공동물 = 하위 작업공간 필요
feature branch는 develop branch의 하위로 실제 작업을 하는 공간


실제로 그래서 작업을 하는 공간은 feature branch이며, 작업 이후 squash and merge를 통해 develop branch에 합치는 작업을 하게된다. 이후 이런 작업들을 반복하고, 수정하며 최종적으로 master branch에 merge하면 끝.


오류가 있다면 추후에 개선할 예정

이후 진행할 이야기

squash merge

이전에 commit내용을 수정하고 싶다면?

발생했었던 에러들 ( token 문제, 권한문제 )(https://velog.io/@arthur/GitHub-%EC%97%90%EB%9F%AC-%ED%95%B4%EA%B2%B0-The-requested-URL-returned-error-403)

profile
매일 성장할 나를 위하여

0개의 댓글