깃은 수월한 버전관리를 위한 시스템이라고 알고 있고
깃헙은 그 깃으로 저장한 버전들을 웹상의 내 공간에 올려 협업 시 편리하게 해주는 툴로 알고 있다.
앞으로 실제로 써가면서 더 그 확실한 차이와 개념을 잡을 수 있을 것이라고 생각한다.
다음 글은 혹시라도 나처럼 아무것도 모르겠는 사람들을 위해, 그리고 나중의 나를 위해(또 잊을 것같아서) 엄청 쉽게 써보았다.
해야할 일의 순서는 이와 같았다.
내가 모르는 말 정리
1. 3번: git을 사용할 수 있도록 초기화...?
2. 5번: github 레파지토리에서 볼 수 있도록 ...? 올린다
3. 6번: feature/readme 브랜치를 생성..? README.md ? markdown syntax..?
4. 8번: Pull Request.. 2주 전에 하긴 했었는데 모드라 ㅎ
구글링이 얼마나 중요한지도, 그리고 구글링이 개발자의 숙명이라는 것도 알고 있다.
하여 구글링을 했으나....ㅎㅎ
음.. 그 구글링하셔서 문제를 해결하신 분은 아하~! 유레카~! 하면서 막 신나서 알아서 뭔가 하신 것 같은데
문제는 내가 당신의 언어를 이해를 못함 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ씁쓸.. 숙연..
다행히도 나는 위코드에 좋은 동료(가 엄청 많은데 거의 매번 다른 사람을 특정하여 쓰고 있는 말)가 많이 도와주어 해결할 수 있었다.
설명: 내가 내 작업을 올릴 웹상의 깃 공간을 만든 것.
(해석: 터미널 켜서 mkdir git-test2
실행 후 그 안으로 들어가기 --> git init
입력)
설명: 내 작업을 올릴 웹상의 깃 공간에 들어갈 자료를 내 컴퓨터 속에 보관할 로컬 공간을 만든 후, 그 공간을 웹상의 깃과 연동을 시켜준 것이라고 이해했었는데 다시 보니,
(+ 🐜 1차 수정)
깃 이닛은 '이제 내가 이 폴더를 깃헙이랑 연동해서 사용하겠다'고 미리 말해준것이고,
실제 연동은 git clone명령어나 git remote 명령어를 통해서 작업했을 때 실제로 연결된다.
이 작업 완료 시 터미널에서 확인해보면
.git 파일이 생겨 있다. 이러면 성공임.
(해석: 이미 터미널 상에서 git-test2 폴더 속으로 들어가있는 상황이니, 이제 그 안에서 vim 명령어를 이용하여 py 문서 만들고, 그 안에 짝수 구하는 함수 구현) [4번 과제 해결]
사실 짝수 구하는 함수 구현했었는데(처음에 git-test로 할 때) 두 번째할 때는 시간 관계상 이렇게 만들었다. 짝수 구현 함수는 깃 다루는것에 비하면 일이라고 보기 어려우니 스킵하겠다.
(해석: 여기서부터 무슨말인지 모르겠음. github 레파지토리에서 본다는게 뭔 소리지? 이미 연동 다 마쳤는데 왜 또 본다고하는거지? ... 우선 동료가 알려준 방법은 아래와 같다.)
설명:
1) 처음 git remote -v
: git remote
자체는 원격 저장소를 내가 관리하겠다(건드리겠다)는 의미. 여기서 git remote -v
는 원격 깃헙 상태가 어떤지 체크? (아마도 v는 view의 줄임말인 것으로 유추)하는 용도이고 그 아래 명령이 중요하다.
2) git remote add origin https://github.com/[이름]/gitExample
하면 origin이라는 이름으로 원격 저장소 주소를 등록하겠다는 의미. 이제부터 origin이라는 이름을 사용하면(git checkout 해당저장소이름
) 방금 전에 만든 저장소에 접속할 수 있음. (굳이 origin이라고 안하고 다른 이름으로 해도 된다는데 우선 헷갈리니 origin으로 함.)
3) git remote add
이후, 다시 git remote -v
하면 아래처럼 fetch, push가 순서로 등장. 뭔가 연결되었다는 의미.
4) 이후 git status
를 이용하여 내 깃 저장소의 상태를 확인해보니, wanna go home
(please.py안의 내용)이 마스터 브랜치에서 커밋되지 않은채 찝찝하게 남아있는 것을 확인함. (참고로 이 때는 빨간 글씨 상태)
5) 그 다음 위의 과정들을 진행해 줘야, 내가 wanna go home이라고 작성한 please.py가 내 원격 저장소에 들어가게 되는 것!
add .를하면 글씨가 초록색으로 바뀌는 것을 볼 수 있다.
사진 상의 add, commit, push에 대한 자세한 설명은 아래에 해놓음 (사실 이 블로깅하면서 순서가 헷갈려서 아래 내용을 먼저 썼음ㅎㅎㅎㅎ)
💀 이상한 점:
처음에 git-test 파일로 시도했을 때 잘 되었었다. 한 번 더 시도할 때, git remote -v
명령어를 git remote add origin
하기 전에 하지 않고 넘어간 적이 있는데, 그 때 에러가 났다. 그래서 이번에는 깃 리모트 애드 하기 전에 한번, 하고 나서 한 번 해주었는데 에러가 안났다. 솔직히 git remote -v 몇 번하는지가 중요한 것 같지 않은데 (;;) 그렇게 되어서 이상하다. 네 우선 패스ㅎㅎ
(+ 🐜 1차 수정) 이 때는 이 파일을 마스터 브랜치로 올렸다. 근데 마스터 브랜치를 이용하여 직접 파일을 관리하는 경우는 거의 없다고 한다. 마스터 브랜치에서
git branch 브랜치명
으로 브랜치를 하나 따고(이게 뭘 의미하냐면, 내가 어떤 프로젝트 하나를 시작하면 앞으로 앱(기능)을 추가하게 되고, 앱 추가 때마다 기존의 브랜치 자체를 바꿔버리면 어떤 기능을 만들면서 어떻게 코드가 바뀌어온 것인지 track하기 곤란한 상황이 생길 수 있으니 앱을 추가할 때마다 가지를 하나 하나 뻗어 한 가지에 하나의 앱들을 관리(add, commit, push작업)하게 되는 것) 그 곳에서 파일을 관리한다. 그리고 웹상의 깃헙에서 그 가지의 내용이 괜찮다고 판단하면 merge를 통해 마스터 브랜치와 그 내용을 붙여주게 되는 것. 그리고 당연히 그렇게 마스터 브랜치가 merge되면 그 머지된 내용을 내 로컬 폴더로 다시금 clone하여 작업하는 것이 최신으로 관리하기 위해 필요한 것. (이래서 버전관리를 위해 필요한 것이 git이라고 하는 듯)
설명:
브랜치 만들 때는 그냥 바로 git branch feature/readme
로 만든다.
다만 이상한 점은 아래 fatal: Not a valid object name: 'master'
부분인데 이 말을 하고 왜 잘 된건지는 잘 모르겠다. 우선 이 말 나오면 당황하지 않기로. 되긴 되니까ㅎㅎ 우선 또 패스 ㅎㅎ;;
설명:
그 다음, git checkout feature/readme
명령어로 feature 브랜치에서 readme에 들어가니 내 위치가 Switched되었다며 알려줬다. vim 파일로 readme.md를 만들고 그 다음 가장 중요한
add --> commit --> push 과정 진행. 각각의 세세한 명령어는 위의 사진 참조.
그리고나서 보면
1) vim파일을 만들었을 때 색깔이 노란색으로 변했고 (무언가 변화가 생김을 의미하는듯)
2) git add .
(.이 의미하는 것은 이 폴더의 모든 것의 수정된 사항을 저장하겠다) 하니 +가 붙었다.
3) 이후 git commit -m_(커밋 메시지를 의미)_ "어떤 상태변화인지 쓰는 메시지"
하고 나니,
4) 1 file changed, 1 insertion 출력
5) git push origin feature/readme
명령어로 최종 완성
6) 아랫쪽 보면 Create a pull request for ~~이 나와있고, 실제로 이제 내 웹 깃헙에 들어가면 Pull Request할 수 있는 버튼이 활성화되어있다. 그걸 눌러서 최종 완성.
팁) 만약 origin이라는 원격 저장소를 지우고 싶다면 git remote remove origin
향후 수정 계획 많음 + 피드백 너무 환영.
깃이 어려운 수준이 아니라 아예 외계어로 읽히는 분들에게 조금이나마 도움이 되기를 바랍니다.
☠️힘내요 같이☠️
reference:
https://www.zerocho.com/category/Git/post/581042fdcae2d100152ceae6