Git_인프런 05

5w31892p·2022년 11월 21일
0

Git

목록 보기
8/10

📜 Git

:: ✍ 명령어로 git 다루기

  • IDE 터미널에서 작업 가능
  • 소스트리는 보조 도구

:: 저장소와 버전 만들기

  • 현재 경로 확인
    • pwd
  • 해당 폴더로 이동
    • cd 폴더위치
      • cd /c/Desktop/inflearn_git
  • 화면 지우기
    • clear
  • 비어있는 화면 만들기
    • touch
      • touch a.txt
  • 현 상태 확인
    • git status
  • 스테이지로 올리기
    • git add 파일명
      • git add a.txt
    • 변경사항 있는 파일 모두 올리기
      • git add .
  • 버전만들기
    • git commit -m “커밋메시지” -> 제목만
      • git commit -m "first commit"
    • git commit -> 내용까지 자세히 적고 싶을 때
      • a or i + enter -> 하단에 INSERT 나와야 입력 가능
      • 제목 쓰고 한칸 띄고 내용 적은 후 ESC
      • :wq + enter 로 저장 후 나가기
  • add & commit 한번에 하기
    • git commit -am "커밋메시지"
      • git commit -am "forth commit message header"
      • 이전에 각각 add & commit 했던 파일만 가능 (처음부터 하려고 하면 안됨)
  • 현재 git에 commit되어 있는 것 확인
    • git log

:: commit 다양하게 조회하기

  • git log 사용법
  • 나가기는 q
  • 한줄로 출력
    • git log --oneline
    • 짧은 commit hash 볼 수 있음
  • commit 변경사항 확인
    • git -p ( == git --patch )
  • 그래프보기
    • git log --graph
  • 한줄로 보면서 그래프보기
    • git --oneline --graph
  • 한줄로 보면서 변경사항 보기
    • git –oneline -p

:: 태그 관리하기

  • commit에 태그 달기
    • git tag V0.0.1 commit hash복붙
      • 긴커밋해시, 짧은 커밋해시 뭘 써도 상관 없음
    • commit hash 안 넣으면 가장 최신 commit에 tag 달아짐
  • 태그목록조회
    • git tag ( == git tag --list 또는 git tag -l )
  • 태그삭제
    • git tag --delete 태그이름 ( == git tag -d 태그이름 )
      • git tag --delete V0.0.3

:: 작업내역 비교하기

  • 최신 commit과 현재 작업디렉터리 비교
    • git diff
  • 최신 commit과 현재 stage 비교
    • git diff --staged ( == git diff --cached )
  • commit끼리 비교
    • 최신커밋이 이전커밋과 뭐가 다른지 묻는 것이기 때문에 순서 잘 쓰기
    • git diff 이전커밋해시 최신커밋해시
      • git diff 67479a0 49abdb1
      • git diff 67479a095a031ba044358d0389378952b7431ef0 49abdb1a96d2215a0c40a4f4c3c747d303c56812

:: 작업되돌리기 (revert, reset)

  • git revert 취소할 커밋해시
  • reset
    • git reset 되돌아갈 커밋해시
      • 그냥 reset이라고하만 하면 mixed reset이 됨 (커밋 사실만 리셋)
    • git reset --soft 되돌아갈 커밋해시
    • git reset --mixed 되돌아갈 커밋해시
    • git reset --hard 되돌아갈 커밋해시 (작업디렉터리에서 변경된 사실까지 리셋)

:: 작업 임시저장하기 (stash)

  • 가장 최근의 임시저장이 0번
    • 그다음 최근은 1, 그다음은 2 이런 순서
  • 임시저장
    • git stash
  • 임시저장한 작업내역 조회
    • git stash list
  • 무엇을 임시저장했는지 제목과 함께 저장
    • git stash -m ”내용”
  • 해당스태시 임시저장항목 적용하기
    • git stash apply
      • git stash apply stash@{0}
  • 임시저장항목삭제
    • git stash drop 해당스태시

:: 브랜치 관리하기

  • git branch 현재 브랜치 보기
  • git branch 만들브랜치이름 새로운 브랜치 만들기
  • git checkout 브랜치이름 해당 브랜치로 이동하기
  • git log는 해당 브랜치의 최신커밋만 보여줌
  • git log --branches 전체 브랜치 커밋 다 보여줌
  • git merge 합쳐질브랜치명
    • master에 foo 합칠거면 master에 checkout
  • git branch -d 삭제하고자하는브랜치명 브랜치삭제
    • merge후 사용하지 않는 브랜치는 무조건 삭제
  • git checkout -b 만들브랜치명 브랜치 만드는 것과 동시에 체크아웃하기

충돌시

  1. 파일 직접 들어가서 수정
  2. 수정 후 add -> commit

:: rebase하기

  • master도 변했을 때
master의 2번째에서 foo가 뻗어나왔지만, 
foo생성 후 master가 5번째까지 생겼고 
foo를 master의 다섯번째로 옮길 때 사용(베이스를 옮긴다)
  • git rebase master
    • foo에서 진행해야함 (foo로 체크아웃 후 해야함)

merge는 master는 그대로고 다른 변동 사항 있는 브랜치 합칠 때

rebase는 master와 다른 브랜치 모두 변동 사항 있을 때


:: 원격저장소와 상호작용

  • git clone 복사한 ssh
  • cd 들어갈폴더명
  • cd ../ 현재폴더 나가기
  • ls 폴더안 전체 파일보기
  • ls -a 숨김폴더까지 보기
  • mkdir 비어있는 폴더만들기

리포지토리 새로 만들면 이것으로 push

echo "# first-repo" >> README.md
git init
git add README.md
git commit -m "commit message"
git branch -M main
git remote add origin ssh주소
git push -u origin main

master를 main으로 브랜치명 변경해야함

  • git branch -M main 현재 브랜치 이름을 main으로 바꾸는 것
  • git remote add origin 원격저장url 원격저장소 경로 추가
  • git remote 추가후 잘 추가되었는지 확인
  • git remote -v 추가한 경로까지 확인
  • git push -u origin main 원격저장소에 밀어넣기
    • -u는 나중에 또 푸시할 때 git push만 쳐도 가능하게 하는 것
      • -u를 적으면 뒤에 origin main 안쳐도 되지만,
      • -u를 안적었다면 git push origin main 다 쳐야 함

원격저장소랑 와따리 하려면 remote에 origin 꼭 추가


  • git fetch origin main
  • git checkout origin/main ( == git checkout FETCH_HEAD ) 후 git log
    • 일단 가져온(fetch한) 파일보기
  • git merge origin/main 으로 현재 로컬 main에 합치기
  • git pull or git pull origin mine : 땡겨오기, 패치와 동시에 병합

fetch 일단 가져오기 / pull 가져와서 병합까지!

:: 풀리퀘스트(Pull Request)

  1. 기여하려는 저장소에 본인계정 fork (fork가 되어 있는 경우라면 sink 맞춘 후 clone)
  2. fork한 저장소 clone
  3. branch 생성 후 생성한 branch에 checkout 후 작업
  4. 작업한 branch push
    • git push origin myName (작업한 브랜치 내보내야 하므로)
  5. PR 보내기
    • github로 돌아가면 풀리퀘스트 하라는 박스 생김 그거 눌러서 잘 적용됐는지 확인 후 pull

0개의 댓글