TIL 210930

devyoon99·2021년 9월 30일
0

TIL

목록 보기
8/38
post-thumbnail

git


1) 소스트리

  • 소스트리의 history에 가면, 커밋기록을 볼 수 있다.
    • 이때, origin/mainmain이 있다. 이 차이는 뭘 까?
      • 둘이 같은 히스토리에 있다. -> 푸쉬완료
      • 둘이 다른 히스토리에 있다. -> 커밋은 했지만, 푸쉬는 안한 것이 있음.
    • origin/HEAD의 의미? 해당 branch에서 작업하고 있다는 것을 의미한다.
  • 소스트리에서 새로고침하는 방법
    • 상단의 페치아이콘을 클릭해라
  • 브랜치 만드는 방법
    • 브랜치 아이콘 클릭 후, 브랜치 생성
      • 브랜치 이름 짓는 방법 : feat/아무거나
  • 다른 브랜치로 이동하는 방법
    • 히스토리에서 왼쪽 메뉴에 있는 다른 브랜치의 이름을 더블클릭해라
      • 현재 있는 브랜치는 앞에 아이콘이 있다.
  • merge
    1. 히스토리에서 원하는 커밋에 우클릭후 병합 누르기
    2. main branch로 푸쉬를 해야한다.

2) git명령어로 브랜치만들기

  • git branch cat
    • 현재 위치에서 cat이라는 브랜치를 만들어라
  • git checkout cat
    • cat branch로 이동해라

3) vsc에서 커밋하는 방법

왼쪽메뉴의 3번째 아이콘 클릭
+ : 스테이지에 올린다
✔︎ : 커밋


4) git으로 merge하는 방법

  • main이 되는 브랜치로 이동한다.
  • git merge 브랜치명
    • main이 되는 브랜치로 작업한 브랜치를 땅겨오는 느낌이다.

4) conflict(충돌) 해결하는 방법

  • 발생하는 이유?
    • 두 브랜치가 같은 부분을 다르게 수정하면 발생한다.
    • 한 브랜치는 복싱을 싫다했고, 다른 브랜치는 복싱을 좋다했으므로 충돌이 발생하는 것이다.
  • 충돌 병합이 발생하면, vsc나 히스토리의 새로생긴 커밋을 확인해라
    • 아래와 같이 코드가 뜬다.
<<<<<<< HEAD
스파링 싫어요
=======
스파링 좋아요
>>>>>>> feat/love
  • 해결 방법
    • 둘 중에 하나를 선택한다.
    • 둘을 조합하여 새로운 코드를 작성한다.
      • 스파링이 좋지만 싫어요
    • 선택후 커밋&푸쉬 진행한다.

5) pork(저장소를 통째로 복제)

  • 실수 : 목적지 경로를 확인하지 않아서, 포크한 파일이 어디에 생성되었는지 확인하지 못했다.

  • 새로운 파일을 만들고, repository를 복사해오기
  • 예시 : 오픈소스에 기여하고 싶을 때, 복제해와서, 나의 취향껏 수정한 뒤, 원작자에게 merge해달라고 요청한다.
  • 방법
    1. 다른 사람의 repository에 들어간다.
    2. 오른쪽 상단의 pork아이콘을 누르면, 다른 사람의 저장소가 나의 저장소로 옮겨진다.
    3. 소스트리의 상단 새로만들기 -> 저장소 URL복제 -> 포크된 저장소의 주소(나의 레포지토리에 있는 것) 복붙한다.
    4. 목적지경로를 클릭하고, 자주쓰는 곳으로 옮겨라(파일이 생성되는 위치이다.)
    5. vsc로 README.md의 컨트리뷰터 목록에 본인의 이름을 추가해라
    6. 소스트리 왼쪽 메뉴 우클릭 -> 새 원격 -> 원격이름에 upstream입력 그리고 원격주소에 내가 포크한 원작자의 저장소 주소 복붙
    7. 새 원격을 추가하는 이유는, 원작자가 새로 추가한 것이 있는지 확인하려는 목적이다.

6)pull request(내 코드를 머지해주면 안되겠니?)

  • 실제로 협업할 때, merge하는 것보다 pull request를 하는 편이 좋다
    • 왜냐하면, 어떤 것이 변경되었는지 확인하기 수월하고, 코드리뷰를 받을 수 있다.
  • 풀 리퀘스트 보내기 전에 contributing quide를 반드시 확인하자
  • 방법
    1. README.md의 컨트리뷰터에 내 이름이 추가됬는지 확인해라
    2. 나의 포크한 저장소에서 중상단의 contribute클릭 -> pull request클릭
    3. Able to merge라는 표현이 뜨면, 요청을 보낼 수 있다. 안뜨면, 병합 충돌을 해결해라
    4. 초록색의 create pull request클릭
    5. 이름에 기능 요약, 내용에 추가한 기능의 코드를 스크린샷을 보낸다.

7)amend

  • 설명 : 커밋을 했는데, 깜빡하고 빠뜨린 것이 있을때, 빠뜨린 것을 포함해서 다시 커밋할 수 있는 기능이다.
  • 방법
    1. 소스트리 상단의 커밋클릭
    2. 커밋메세지 클릭 -> 커밋옵션 -> 마지막 커밋 수정
    3. 빠뜨린 것을 스테이지에 올리고, 커밋하면 된다.
  • 주의사항 : 나 혼자 쓰는 브랜치가 아닐 경우에는 조심해야한다. 마지막 커밋 수정을 누를 때, master를 보고 있는 다른사람의 히스토리가 꼬일 수 있기 때문이다.

8)stash(임시저장)

  • 설명 : 작업을 다 하지 못했는데, 더 급한 것이 생겼을 때, stash를 하고, 다른 브랜치로 넘어가서 작업을한다.(커밋을 한 것이 아니다. 임시저장 느낌)
  • 방법
    1. 소스트리 상단의 스테시를 클릭
    2. 메세지를 추가
  • 다시 꺼내는 방법
    1. 소스트리 왼쪽 메뉴의 치워두기 클릭
    2. 메세지 확인하여, 아까 입력한 메세지 부분 더블 클릭
    3. 다시 작업할 수 있다.

9)reset(과거 커밋으로 되돌아가고 싶을 때)

  • 방법
    1. 소스트리의 히스토리에 들어간다.
    2. 원하는 커밋에다가 우클릭 -> main을 이 커밋으로 초기화 클릭 -> hard클릭
    3. 이때, 푸쉬를 하면, 오류가 뜬다.
    4. 언어를 영어로 변경
    5. 설정 -> advanced -> allow force push
    6. 언어를 한국어로 변경
    7. 푸쉬클릭 -> 폴스푸쉬 체크 -> 푸쉬완료
  • hard가 아닌 mixed를 선택했을 경우
    • 과거로 돌아간다. 하지만 돌아간 시점이후의 커밋이 사라지는 것이 아니라, 수정할 수 있도록 스테이지에 올라가기 전의 상태이다.
  • 주의사항 : 나 혼자 쓰는 브랜치가 아닐 경우에는 조심해야한다. 마지막 커밋 수정을 누를 때, master를 보고 있는 다른사람의 히스토리가 꼬일 수 있기 때문이다.

10)revert(reset하지않고, 커밋되돌리기)

  • 설명 : 커밋을 잘못했을 때, revert를 하면, 변경사항을 다시 복구시켜서, 새로운 커밋으로 올린다.
    • html파일 내용물을 지우고, 잘못 커밋했을 때, revert하면, html 내용물을 복구시키고, 자동으로 커밋이 된다.
  • 방법
    1. 소스트리의 히스토리에서 잘못 올린 커밋에 우클릭한다.
    2. 커밋 되돌리기 클릭
  • 사용하는 이유
    • reset을 하게 되면, master를 보고 있는 다른 사람들에게도 영향을 끼치기 때문이다.

11)cherry-pick(이 커밋하나면 떼서 다른 브랜치에 붙이고 싶을 때,)

  • 회사의 관리 방식
    • latest branch
      • 릴리즈를 위한 브랜치
    • master branch
      • 완벽한 코드를 모아놓은 브랜치
  • 방법
    1. 소스트리의 히스트리로 이동
    2. 다른 브랜치의 원하는 커밋을 우클릭한다.
    3. 체리픽클릭
    4. commit immediately after successful merge 체크박스 클릭 -> 컨티뉴클릭

12) git 명령어로 커밋안한 것들 확인하는 방법

  • git status

0개의 댓글

관련 채용 정보