git 참고자료

Henrique·2024년 5월 14일

Git 짧막 지식

목록 보기
16/32

git 연동 시키기

백엔드 올릴 때
1. gitignore 파일에 가상환경이랑 settings.py에 있는 secret_key 넣기
2. 가상환경에 pip freeze > requirements.txt 치면 자동으로 파일생성되고 내용 입력됨
3. 딴 사람들이 가상환경에 pip install -r requirements.txt 쓰면 됨

cf. 깃 연결 끊기 -> git remote remove origin

1. git init -> 관리하려는 폴더를 git 초기화 설정으로 git 버전관리 상태로 만들기.
 + git branch -M main -> main 브랜치를 메인으로 쓰겠다 (해도 되고 안하면 master로 자동으로 됨) 
2. git add . -> 스테이징 - 폴더&파일들을 git이 추적할 수 있게 올리는 것을 의미.
3. git status -> 스테이징 후, 현재 파일 상태들이 어떤지 확인가능하다.

cf. git remote -v -> 어느 깃저장소에 연결되어 있는지 확인 가능
     git config --global user.name ID값
     git config --global user.email email주소
     git push origin --delete branch_name -> 브랜치 삭제
     git branch -m new_name -> 브랜치 이름 변경(변경하고 싶은 브랜치에 checkout 하고 해야됨)
     git pull --allow-unrelated-histories origin main -> readme 파일 때문에 push가 안되고 pull도 안될때
4. git remote add origin 깃저장소(주소)
5. git commit -m "first commit"
6. git push --set-upstream origin main = git push -u origin main -> 로컬 브랜치를 origin에 연결하고 변경사항 저장
   git push origin main -> 로컬 브랜치를 origin에 연결하고 변경사항 저장
   위 둘의 차이점 -> 위에 두개는 다음부터 git push만 해도 아까 연결한게 풀리지 않아서 변경사항 제대로 적용
                    아래꺼는 한번 변경사항 적용하고 브랜치 연결이 끊겨서 다시 똑같이 git push origin main이라고 써야됨
cf) 권한 문제로 push 안될 때
git remote set-url origin https://<복사한 코드>@github.com/<유저네임 or organization>/<레포지토리 이름>

기본적인 순서

1. git branch 브랜치이름 줄기이름 ex) git branch seungmin main
2. git checkout 브랜치이름
3. git push 입력 -> git push~ 나오는거 그대로 복사 붙여넣기 (원격 레포에 브랜치 알려주기위해)
  c.f. 원래 레포와 내용이 많이 다르면 데이터 손실 방지를 위해 push를 막음 
      -> git push origin +main 쓰면 됨 -> 덮어 씌우는거라 중요한 데이터는 따로 저장 후 쓰기
4. ...내용수정... + (ctrl+s)
5. 변경된 사항 '+' 버튼 눌러서 staged 상태로 만들기(git add 파일이름 <- 이렇게 해도 됨)
6. 메세지 창에 수정정보 입력 ex) feat: 이름수정입니다.
7. 커밋 누르기
8. git push --force-with-lease (로컬에서만 바뀐걸 원격 레포에 push하기)
9. 깃허브가서 pull requests -> new pull request -> 내 브랜치 찾아서 클릭 -> 변경내용입력
10. create pull request

merge 하려는데 충돌발생했을 경우

git checkout main
git fetch --all
git reset --hard origin/main
git checkcout 내가 작업한 브랜치이름
git rebase main (지금 로컬환경에 있는 main 브랜치에 합쳐주겠다. 그래서 맨위에 세줄로 main 최신화)
수신변경사항수락
변경사항병합 '+' 누르기
계속 버튼 누르기
git push --force-with-lease

이어서 기본적인 순서

11. (충돌났을 경우 깃허브가서 충돌 풀린거 확인하고) rebase merge
12. git checkout main (아직 안 바뀜 -> 왜 why? 원격 레포에서 정보를 로컬에 받아 오질 않았음)
13. git branch -D 작업한 브랜치이름 (머지하면 레포에는 브랜치 사라짐)
14. git stash(fetch나 rest --hard 같은거 하기 전에 저장하는 역할)
15. git fetch --all
16. git reset --hard origin/main
17. go live로 확인하면 잘 바뀌어있다! 

깃허브에서 받을 때 변경사항 받을 때  -> git pull origin master

깃에서 하위폴더만 가져오고 싶을 때

git bash에서 해야됨
1. mkdir 폴더이름 -> 폴더 만들기
2. cd 폴더이름 -> 폴더로 이동
3. git init
4. git config core.sparseCheckout true
5. git config --list -> sparseCheckout=true인지 확인 
(end라고 뜨면서 명령어 입력이 안될텐데 q 누르면 됨)
6. git remote add -f origin 레포주소 (git clone 할 때 쓰는 주소)
(git bash 에서는 ctrl + v 안되니까 마우스 우클릭 paste)
7. echo "다운받을 폴더 경로" > .git/info/sparse-checkout
(다운받을 폴더 경로 ex) "liongram/static")
8. git pull origin 브랜치명 (폴더가 있는 브랜치명 쓰면 됨 보통 main이거나 master 일듯)

0개의 댓글