간결하고 이해하기 쉬운 실습
1) 로컬폴더 만들기
terminal에서
cd desktop > mkdir 폴더 만들고 (로컬 폴더)
깃허브 가서 new repository> create 만들고
terminal에서 git init 하고, git remote 혹은 git remote-v 하면 아무것도 안 나오는 게 정상
이제 깃허브의 new repository와 로컬 폴더를 연결해줄 건데,
터미널에 git remote add origin [repository 주소]
touch [내이름].md 로 마크다운 파일을 만들었다 (touch는 파일생성 명령어)
ls 눌러보면, 위 만든 파일이 나온다.
git add, commit
이 상태에서 git status 하면 아무것도 안 나오는게 정상이고, no commits 맞다.
아직 업로드 되지 않은 파일 리스트가 빨간색으로 나오고 (untracking이라며)
git add . 후에 잘 올라갔는지 확인하려고 git status를 찍고나면
이제 초록색으로 잘 올라갓다고 나온다.
add 후에는 commit 해야 하니
git commit -m " "
git status : 터미널 내용이 없다 깨끗하다. commit한 이후로 수정된 게 없다.
내가 commit한 내역을 보고싶다면, git log 치면 들어가지고,
'누가 언제 어떤내용'을 수정했는지 나옴.
commit을 보고 나서는 'q'로 나오면 됨.
commit을 했으니 이제 push를 해야 함.
git push origin [branch 이름]
2) branch로 진행할 경우
작업공간이라는 branch
1.branch 생성
git branch feature/[이름]
2. (선택) git branch로 확인 (들어가보면, 내 위치가 'feature/[이름]'으로 됨, q로 나오고)
3. git check out feature/ [branch 이름]
지금 branch에서 다른 branch 로 이동 --> 'switch to feature/[이름]' 뜰 것
이러면 앞에 branch이름이 따라 다닐 것
4. cp gildong souou (복사) 이거 왜하는거지, 어디서 어디에 무엇ㅇ르 복사
5. git add .
6. git commit - m " " 이 버전에 gildong과 souou 2개를 저장을 할 거야
(git checkout main 다시 가보면 ls 하면 폴더 만든 거 없음. 같은 컴퓨터여도. checkout은 버젼을 왔다갔다 하는거)
그래서 git branch로 내가 지금 어디에 와있는지 확인하는 것
7. git push origin feature/[ ] remote 깃허브 저장소에 이제서야 올라간 거
8. 내 버전을 main 버전에 합쳐주는 깃허브 > pull requests > compare: [branch선택] >create pull requests 초록 버튼 >들어가서, 쓰고 > 또 create pull requests
프로젝트할떄, 각 팀원들이 다른 팀원이 만든 코드를 main 저장소에 올린 거를
clone으로 각자 로컬에 다운 받는다
터미널에서 git clone [해당 branch url 복붙]
하면 폴더가 로컬에 다운 받아짐. ---> branch를 별개로 생성해야 함
(만약 vi [ ].md 파일로 안에 들어가서 text 수정 후 저장했으면
변경 사항이 생겼으니까,
git add . , git commit -m " " , git log 해서 commit 확인, q로 나오기)
branch로 작업했으면, 내 remote(=github) 에 branch로 올려줘야 함
remote에는
방금 내가 만든 branch가 없는 상태,
내 로컬 환경에서만 존재 하는 것 (아직 Push를 안했다면)
만약에 remote 공간에 Local branch가 있다고 하면
commit해서 수정만 하면 되는데,
없는 상태에서,
처음 만든 branch를 push한다면,
remote 공간에 branch 를 하나 생성한다로 생각. --> git origin feature/[branch이름]
== 내 remote 공간에 feature/[ ]를 만들어주는 것
vi 로 md파일 내용 수정도 해보았다 (readme.md 개념)
그리고 나와서 cat으로 찍어보고,
깃허브를 아무리 새로고침해도 올라오지 않았다. 비어있던 파일에 내가 내용 추가 했으니, git add [특정 파일.md] , git commit -m " "
git log으로 commit 내역 보니 잘 됐고.
이후에도 깃허브에 새로고침해도 안 나와서 git push origin [.md] 도 해봤는데 안 되길래
알고보니, git push origin feature/[branch name]을 한번 더 했어야
앞머리의 내가 '로컬에 만든 폴더'에 위치하고 있고,
여기에서, 내가 '로컬에 만든 branch'로 이동했고,
여기에서, git push origin으로 깃허브에 branch 폴더가 옮겨졌고
'로컬에 만든 branch'안에, 내가 이전에 git add . 로 들어간 '로컬에 만든 폴더'의 내용물들이 담겨있다 (즉, branch에 먼저 올리는것)
add-commit-push 잊지말자!
자, 이제 branch를 만드는 이유를 생각해봐야하는데,
작업물을 main에 바로 올릴 수 없기에,
branch를 만들어서, 그 branch를 작업 공간(remote)에 올린 것.
그렇다면, 결국
내 'main' branch에 , 내가 작업한 내용이 합쳐져야 하는 것
== pr = pull request
== pr이 수락되면, 내 코드가 main branch에 합쳐진다. (merge)
깃허브 > pull request 탭> new pull request
구러면 compare changes로 비교 하는 게 나오는데,
base:는 항상 main 이다. --> 코드가 Merge 병합돼서 합쳐질 장소
compare: main에 병합 시켜야 할 branch 선택하기
feature/[branch 이름] 에서 작성한 내용이 main branch에도 가게 되는 것
pr 만들어주세요 : branch 생성 후 과제 진행, add, commit, push , 깃허브에서 pull request.
remote에 merge 후에는 더 이상 branch는 필요 없음
로컬의 main에는 아직 모르니, 다른 branch 생성하기 위해, 최신화 위해
git checkout main으로 돌아옴
깃허브 commit history가 아직 local에 없으니, push 반대인 pull로 remote(origin)에서 local로 받아오겠다 --> git pull origin main
<이게 하나의 기능을 만드는 cycle>
다시 큰 흐름 정리하면,
1. branch라는 작업 공간 만들고 작업해서
2. git add, commit, push 하고
3. 깃허브에서 repository pr 만들고 올리고 main branch에 merge되고
4. pull 해서 그 main branch 를 다시 받아오는 거
'Wecode -Foundation 2 (부트캠프) > Git, Github Database (저장소)' 카테고리의 다른 글
Foundation Test - [깃허브] branch 생성 후 github 업로드 성공! (0) | 2023.09.10 |
---|---|
내가 생성한 코드 깃허브에 push하기 (주황색) (0) | 2023.09.05 |