개발/Github

Github pull & push

piece5 2023. 7. 8. 14:27
  • 처음에 Git 설정
  1. 로컬 저장소로 쓸 폴더에서 git bash 실행하기
  2. 이름과 이메일 설정
  3. 만들어둔 깃 레포지토리 클론 하기
git config --global user.name [깃허브 가입 시 이름]
git config --global user.email [깃허브 가입 시 이메일]
git clone http://github.com/[내 이름]/[저장소 명].git

 


  • 새로 추가됐을 때
  1. 바뀐 파일이 있는지 확인
git status
  1. 바뀐 파일 추가
git add [파일 이름] or [폴더 이름/] or .
  1. 커밋
git commit -m "로그"
  1. 업로드
git push origin [브랜치 이름]

 

 

  • 파일 수정 후 커밋할 때

1. git status

git status

# On branch master
# Changes not staged for commit:
#  (use "git add <file>..." to update what will be committed)
#  (use "git restore <file>..." to discard changes in working directory)
#        modified:   a.py

# no changes added to commit (use "git add" and/or "git commit -a")

 

2. 커밋하기

git commit -am "second commit"

 

  • 변경된 사항을 삭제하기 (커밋하기 전)
git restore a.py

 

    • 스테이지한 것을 되돌리기(Unstage)
    • git restore --staged example.ipynb

 


  • 마지막 커밋 취소
# --hard 작업트리와 스테이지 모두 해당 커밋의 내용으로 변경
git reset --hard HEAD~0 # 마지막(HEAD)에서 0번째 == 마지막
git reset --hard HEAD~2 # HEAD에서 2번째로 돌아가기

git log --oneline
# 3333092 (HEAD -> master) message4
# f639c3f message3
# b202cfd message2
# 9190785 message
git reset --hard b202cfd # HEAD에서 2번째로 돌아가기

# --mixed 작업트리는 보존하고 스테이지까지 변경
git reset --mixed f639c3f 

# --soft 저장소만 변경
git reset --soft 

# A,B,C 파일을 생성 후 스테이지에 등록하고 저장소에 등록했을 때
# --hard : 작업트리에 아무 데이터가 남지 않는다
# --mixed : 작업트리에는 A,B,C가 존재하고 스테이지와 저장소에는 남지 않음
# --soft : 작업트리와 스테이지에는 A,B,C가 존재하고 저장소에는 남지 않음

 

  • revert

 

 

 

 


 

 

 

  • 추가 vscode 방법
  1. 먼저 vscode의 왼쪽바에서 3번째 버튼을 누르고
  2. Initialize Repository 버튼이 뜨면 현재 폴더가 아직 git과 연결이 안되어 있다는 뜻이므로 버튼을 눌러서 git init을 해준다
  3. 파일 중에 변경된 것이 있으면 Changes에 뜸
  4. +버튼을 누르면 커밋할 수 있는 상태가 됨. 개별로도 가능.
  5. Changes → Staged Changes 로 변경
  6. ✔버튼을 누른 후 commit 로그를 입력한 후 엔터.
  7. Esc 버튼을 누르면 이전 단계.
  8. Sync Changes 버튼을 눌러서 git pull & push

  • Git Repository에서 내려받기 pull

💡 시작할때마다 pull을 먼저한 후 개발한다

  1. cd [깃 레포지토리와 연결된 폴더]
  2. 받으려는 저장소와 같은지 확인 : git remote -v
  3. git pull / git pull origin [브랜치 이름]