본문 바로가기

Git&Github

vscode에서 작성한 flutter project github에 올리기 + git

더보기

내 2번째? 프로젝트.. flutter 프로젝트 vscode로 만들었다. 

국비로 강의 들었던 거에서 내가 좀 더 기능을 추가하고 다듬고 해서 완성했다. 그래서 이름이 뒤죽박죽이다.... 

 

근데 이제 최근에 완성해서 github에 일단 올리기라도 하자. 해서 하려는데 

 

 

하다 보면.. 답이 있겠지...... github에 계정이 있어야 하고, git이 설치돼있어야 한다.

 

일단 vscode에서 새 터미널을 열어주자. 

git config --list // 로컬 설정
git config --global --list // 전역 설정

 

나는 예전에 설정해 봤던 것도 있고, 뭐 하려다 때려치운 거.. 많을 거다.. 기억도 안 나.

그래서 일단 설정된 걸 확인해 보기로 했다. 

 

확인해 보면 나는 설정 돼있어서 이렇게 떴다. 

git config --global user.name ""
git config --global user.email ""

 

만약 설정이 안 되어있다면 이렇게 설정하면 된다. 나는 github와 똑같은 name과 email로 넣어줬다. 

git add .

 

이 명령어는 git에 내가 만든 모든 파일을 올리겠다. 이 소리다. 

 

그럼 이런 경고문이 날 반겨준다. 하하하 분명 아무것도 안 나오면 된다고 했는데, 나는 왜 경고가 뜨는 거지.. 

git config --global core.autocrlf true // window
git config --global core.autocrlf input // mac

 

당황하지 말고 각자 운영체제에 맞게 위의 코드를 한 줄 입력해 주면 된다. 

이게 뭐냐면 운영체제마다 새로운 에디터에서 줄 바꿈에 들어가는 문자열이 달라져서 뜨는 경고문이라고 한다. 

(window에서는 \r\n이 mac에서는 \n이 들어간다고 한다.)

git commit -m "first commit"

 

그다음 commit을 해주는데 메시지를 함께 적어주면 된다. 약간 무슨 느낌이냐면 과제 최종 ppt , 최종최종 ppt , 진짜최종 ppt 뭐 이런 느낌?

 

그럼 뭐라 뭐라 git에 commit 했다고 좌르르 나올 건데, 이건 git에 올린 거고 우린 github에 올려야 하잖아? 

github계정 다들 있을 거다. 프로젝트를 올릴 repository를 하나 새로 만들고, http url을 복사해서 

 git remote add origin url주소

 

url주소 부분에 복사한 repository 주소를 넣어주면 된다. 이게 뭐냐! git과 github를 연결한다.! 이런 느낌?

 

제대로 연결됐나..? 

git remote -v

 

싶을 때는 이 명령어를 입력해 보면 제대로 연결 됐다면

 

이렇게 뜰 것이다. 이제 github에 진짜 올리는 일만 남았다. 

git push -u origin main

 

이렇게 입력하면 github에 로그인하라고 비밀번호 치라는 창이 떴는데, 로그인하고 나면 github에 올라간다.

그리고 github repository 가서 새로고침을 해보면 잘 들어가 있을 것이다. 


진짜 github에 올리기 위해 속성으로 알아낸 정보였고, git에 대해 공부를 더 해보겠다.. 기본적인 거..

git init // git 초기화
rm -rf .git // git 제거

 

일단 새 프로젝트가 있으면 제일 처음으로 git init을 이용해 git을 초기화해 준다. 

만약 git을 지우고 싶다면 rm -rf. git을 이용해 지우면 된다. (프로젝트에)

git status

 

git 상태확인 명령어이다. commit 하고 commit 한 내용을 확인할 수 있다. 

 

* 만약 git status를 자주 쓴다고 치면

git config --global alias.st status

 

이렇게 별칭을 지정해 줘서 git st 만 쳐도 나오게 할 수 있다.

git config --h

 

이때까지 보면 git 다음 config 명령어를 쳐주고 --global 등등 명령어에서 쓸 수 있는 다양한 속성값들을 입력해 주는 방식인데, 위의 명령어를 입력하면 속성들의 정보를 확인할 수 있다.


  • Git Workflow
  • working directory - 작업하고 있는 환경?이라고 생각하면 될 거 같다. 
  • staging area - 새로 작성했거나 수정한 파일들을 add 하고, commit 하기 전에 관리되는 영역
  • git directory(history) - commit 명령어로 staging area에 있는 파일들을 git directory에 저장한다.
  • remote repository - push 명령어로 나의 git directory에 있는 내용을 원격 서버 (github 같은)에  올릴 수 있다.
  • working directory
  • untracked - git이 관리하고 있지 않은 파일들 (새로 만든 파일들이거나, git init으로 초기화했을 때)
  • tracked - git이 관리하고 있는 파일들 => git에 add 된 파일들
    • unmodified - 이전 버전 파일과 똑같은 상태
    • modified -  이전 버전 파일에서 수정된 상태 -> staging area로 이동할 수 있다.
git rm --cached 파일명

 

* 아까 git add 하면 staging area 영역으로 파일이 넘어간 다했는데 위의 명령어를 이용하면 다시 untracked 된 상태로 돌아간다. 

 


 

뜬금없지만 소스트리를 사용해 보겠다. 소스트리는 Git을 편하게 사용하기 위한 GUI 프로그램이다.

명령어를 입력하지 않아도 된다는 장점이 있다! 많이 사용하는 거 같으니 알아보자. 설치부터 해보겠다. 설치방법은 인터넷에 검색하면 많으니.. 내가 당황한 것과 기록해 두면 좋을 거만 해보겠다.

 

 

소스트리를 설치하고 계정을 만들거나 로그인하면 이렇게 넘어온다.

 

 

다음을 눌렀는데 갑자기 이렇게 떴다. 엄청 당황했지만 인터넷에 검색해도 안 떠서 더 당황했지만.. 취소 누르고 다시 설치하니까 됐다...?

 

그리고 github 연결하려고 계정 추가 눌렀는데..? 왜 입력이 안돼..? 해서 당황했는데 당황하지 말고 OAuth 토큰 새로고침을 누르면 깃허브와 연동하는 브라우저 창이 뜬다.. 

 

소스트리를 이용하면 명령어를 쓰지 않고, 버튼 하나 눌러서 commit과 push가 가능하다! 

 

브랜치도 알아야 되는데.. 예시를 들어가며 해보자. 

 


 

새 Repository를 만들어서 예전에 만들었던 html파일들을 push 해놨다. 그리고 새 파일을 하나 만들었다. 

 

이렇게 하고 소스트리에 가보면

 

이렇게 바뀐 내용? 이 자동으로 나와있다.  마찬가지로 commit하고 push 하면 github repository에 들어가 있는 걸 볼 수 있다.

 

그럼 이제 브랜치를 만들어보자. 브랜치는 간단하게 팀장님이 git_test.html 파일을 올렸다고 치자 그럼 a라는 사람은 저기서 main부분을 담당하고 b라는 사람은 footer 부분을 담당하는 그런 느낌이다. 여러 사람이 같은 파일에 다른 작업을 할 수 있게 해 주는 거지. 이걸 분기한다라고 하는 것 같다. (아닌가..?)

 

기본은 main이고 (최종 프로젝트 느낌?) 새 브랜치를 만들었다.

 

근데 여기서만 만들면 안되잖아? 브랜치도 push를 해줘야 github에도 반영이 된다. 

 

이렇게 하면 

 

새 브랜치가 생긴걸 github에서도 확인할 수 있다. main으로부터 분기됐기 때문에 들어있는 파일도 똑같다. 

더보기

혹시 명령어로 브랜치를 만들고 그 브랜치로 이동하고 싶다면

git checkout -b 새브랜치이름 -> 이렇게 입력하면 된다. 그리고 push할 떄 git push origin new 하면 new라는 브랜치에 push가 된다. 

 

아까 파일의 작업을 이렇게 완료했다 치자

 

그리고 new라는 브랜치에 commit을 하고 github에 push까지 해보자. 그러고 나서 github에 해당 repository로 가보면?

 

이렇게 떠 있다.! Compare & pull request 버튼을 눌러보면

뭘 적는 칸이 나오는데 내가 뭘 작업해서 push했어요~ 라는 내용을 적는 칸인거같다. 그러고 create pull request를 누르고 나면

 

pull request 에 불이 들어와있다. 이게 뭐냐면 main으로 갈 수 있게 해주세요~ 라고 한다. 내가 작업한 코드를 main 최종본에 넣어주세요~ 이런 느낌이 아닐까? 

 

 

이제 뭐 팀장님이나 다른 책임자가 코드를 확인하고 문제 없으면 Merge puu request를 눌러주면

 

main 브랜치에서도 이렇게 바껴있는걸 볼 수 있다! 

 

그럼 내가 작업하던 로컬 저장소에도 똑같아야되는데 거긴 main 내용이 없는데? 하면은 이제 pull로 가져와서 동기화 하면 된다 한다. 

 

알아야 할게 많은데 나중에 보완하겠다. 브랜치부분 부터 

'Git&Github' 카테고리의 다른 글

git 공부하기  (0) 2024.05.27
IntelliJ에서 Spring 프로젝트 Github에 올리기  (0) 2024.05.23