git
1) 소스트리
- 소스트리의 history에 가면, 커밋기록을 볼 수 있다.
- 이때,
origin/main
과 main
이 있다. 이 차이는 뭘 까?
- 둘이 같은 히스토리에 있다. -> 푸쉬완료
- 둘이 다른 히스토리에 있다. -> 커밋은 했지만, 푸쉬는 안한 것이 있음.
origin/HEAD
의 의미? 해당 branch에서 작업하고 있다는 것을 의미한다.
- 소스트리에서 새로고침하는 방법
- 브랜치 만드는 방법
- 다른 브랜치로 이동하는 방법
- 히스토리에서 왼쪽 메뉴에 있는 다른 브랜치의 이름을 더블클릭해라
- merge
- 히스토리에서 원하는 커밋에 우클릭후 병합 누르기
- main branch로 푸쉬를 해야한다.
2) git명령어로 브랜치만들기
git branch cat
git checkout cat
3) vsc에서 커밋하는 방법
왼쪽메뉴의 3번째 아이콘 클릭
+
: 스테이지에 올린다
✔︎
: 커밋
4) git으로 merge하는 방법
- main이 되는 브랜치로 이동한다.
git merge 브랜치명
- main이 되는 브랜치로 작업한 브랜치를 땅겨오는 느낌이다.
4) conflict(충돌) 해결하는 방법
- 발생하는 이유?
- 두 브랜치가 같은 부분을 다르게 수정하면 발생한다.
- 한 브랜치는 복싱을 싫다했고, 다른 브랜치는 복싱을 좋다했으므로 충돌이 발생하는 것이다.
- 충돌 병합이 발생하면, vsc나 히스토리의 새로생긴 커밋을 확인해라
<<<<<<< HEAD
스파링 싫어요
=======
스파링 좋아요
>>>>>>> feat/love
- 해결 방법
- 둘 중에 하나를 선택한다.
- 둘을 조합하여 새로운 코드를 작성한다.
- 선택후 커밋&푸쉬 진행한다.
5) pork(저장소를 통째로 복제)
실수 : 목적지 경로를 확인하지 않아서, 포크한 파일이 어디에 생성되었는지 확인하지 못했다.
- 새로운 파일을 만들고, repository를 복사해오기
- 예시 : 오픈소스에 기여하고 싶을 때, 복제해와서, 나의 취향껏 수정한 뒤, 원작자에게 merge해달라고 요청한다.
- 방법
- 다른 사람의 repository에 들어간다.
- 오른쪽 상단의 pork아이콘을 누르면, 다른 사람의 저장소가 나의 저장소로 옮겨진다.
- 소스트리의 상단 새로만들기 -> 저장소 URL복제 -> 포크된 저장소의 주소(나의 레포지토리에 있는 것) 복붙한다.
- 목적지경로를 클릭하고, 자주쓰는 곳으로 옮겨라(파일이 생성되는 위치이다.)
- vsc로 README.md의 컨트리뷰터 목록에 본인의 이름을 추가해라
- 소스트리 왼쪽 메뉴 우클릭 -> 새 원격 -> 원격이름에
upstream
입력 그리고 원격주소에 내가 포크한 원작자의 저장소 주소
복붙
- 새 원격을 추가하는 이유는, 원작자가 새로 추가한 것이 있는지 확인하려는 목적이다.
6)pull request(내 코드를 머지해주면 안되겠니?)
- 실제로 협업할 때, merge하는 것보다 pull request를 하는 편이 좋다
- 왜냐하면, 어떤 것이 변경되었는지 확인하기 수월하고, 코드리뷰를 받을 수 있다.
- 풀 리퀘스트 보내기 전에
contributing quide
를 반드시 확인하자
- 방법
- README.md의 컨트리뷰터에 내 이름이 추가됬는지 확인해라
- 나의 포크한 저장소에서 중상단의 contribute클릭 -> pull request클릭
Able to merge
라는 표현이 뜨면, 요청을 보낼 수 있다. 안뜨면, 병합 충돌을 해결해라
- 초록색의 create pull request클릭
- 이름에 기능 요약, 내용에 추가한 기능의 코드를 스크린샷을 보낸다.
7)amend
- 설명 : 커밋을 했는데, 깜빡하고 빠뜨린 것이 있을때, 빠뜨린 것을 포함해서 다시 커밋할 수 있는 기능이다.
- 방법
- 소스트리 상단의 커밋클릭
- 커밋메세지 클릭 -> 커밋옵션 -> 마지막 커밋 수정
- 빠뜨린 것을 스테이지에 올리고, 커밋하면 된다.
- 주의사항 : 나 혼자 쓰는 브랜치가 아닐 경우에는 조심해야한다. 마지막 커밋 수정을 누를 때, master를 보고 있는 다른사람의 히스토리가 꼬일 수 있기 때문이다.
8)stash(임시저장)
- 설명 : 작업을 다 하지 못했는데, 더 급한 것이 생겼을 때, stash를 하고, 다른 브랜치로 넘어가서 작업을한다.(커밋을 한 것이 아니다. 임시저장 느낌)
- 방법
- 소스트리 상단의 스테시를 클릭
- 메세지를 추가
- 다시 꺼내는 방법
- 소스트리 왼쪽 메뉴의 치워두기 클릭
- 메세지 확인하여, 아까 입력한 메세지 부분 더블 클릭
- 다시 작업할 수 있다.
9)reset(과거 커밋으로 되돌아가고 싶을 때)
- 방법
- 소스트리의 히스토리에 들어간다.
- 원하는 커밋에다가 우클릭 -> main을 이 커밋으로 초기화 클릭 -> hard클릭
- 이때, 푸쉬를 하면, 오류가 뜬다.
- 언어를 영어로 변경
- 설정 -> advanced -> allow force push
- 언어를 한국어로 변경
- 푸쉬클릭 -> 폴스푸쉬 체크 -> 푸쉬완료
- hard가 아닌 mixed를 선택했을 경우
- 과거로 돌아간다. 하지만 돌아간 시점이후의 커밋이 사라지는 것이 아니라, 수정할 수 있도록 스테이지에 올라가기 전의 상태이다.
- 주의사항 : 나 혼자 쓰는 브랜치가 아닐 경우에는 조심해야한다. 마지막 커밋 수정을 누를 때, master를 보고 있는 다른사람의 히스토리가 꼬일 수 있기 때문이다.
10)revert(reset하지않고, 커밋되돌리기)
- 설명 : 커밋을 잘못했을 때, revert를 하면, 변경사항을 다시 복구시켜서, 새로운 커밋으로 올린다.
- html파일 내용물을 지우고, 잘못 커밋했을 때, revert하면, html 내용물을 복구시키고, 자동으로 커밋이 된다.
- 방법
- 소스트리의 히스토리에서 잘못 올린 커밋에 우클릭한다.
- 커밋 되돌리기 클릭
- 사용하는 이유
- reset을 하게 되면, master를 보고 있는 다른 사람들에게도 영향을 끼치기 때문이다.
11)cherry-pick(이 커밋하나면 떼서 다른 브랜치에 붙이고 싶을 때,)
- 회사의 관리 방식
- latest branch
- master branch
- 방법
- 소스트리의 히스트리로 이동
- 다른 브랜치의 원하는 커밋을 우클릭한다.
- 체리픽클릭
- commit immediately after successful merge 체크박스 클릭 -> 컨티뉴클릭
12) git 명령어로 커밋안한 것들 확인하는 방법