내 프로젝트를 Github에 업로드하기
- git 초기화하기
git init
- git에 원격 저장소 추가하기
git remote add origin https://github.com/minseo25/vulnhub_analysis.git
- 프로젝트 디렉터리의 모든 파일 staging 및 커밋
git add .
git commit -m "any commit message"
- 해당 브랜치를 원격 저장소의 main branch로 push 한다
git push -u origin main
// github 인증은 token generating 방식으로 하면 된다
만약 branch 이름이 main이 아니면 현재 브랜치 이름을 확인하고
git branch
브랜치 이름을 변경한다 (ex. master -> main)
git branch -m master main
외부 프로젝트에 대해 Pull Request 보내기
- 대상 프로젝트(ex. https://github.com/gunh0/whitehat-school-vulhub.git)로 이동 후 오른쪽 상단의 Fork 버튼 클릭. 해당 레포지토리가 내 github 계정 아래로 복사됨
- fork한 레포지토리를 로컬에 복제한다
git clone https://github.com/minseo25/whitehat-school-vulhub.git
cd whitehat-school-vulhub
- 원격 저장소를 "upstream" 이라는 이름으로 추가해놓는다
git remote add upstream https://github.com/gunh0/whitehat-school-vulhub.git
- 브랜치를 새롭게 생성 후 해당 브랜치로 전환한다. 여기서 프로젝트 변경 사항을 적용할 것이다
git checkout -b apache_druid_vuln
- 변경사항을 진행한다 (파일 수정, 기타 작업 폴더 복사해오기)
- 변경 사항 staging 및 커밋 진행한다
git add .
git commit -m "CVE-2021-25646 analysis"
- fork한 레포지토리를 로컬에 복제해왔을 때, origin은 기본적으로 clone한 레포지토리의 url을 가리킨다
- 변경 사항을 github의 포크한 저장소에 push한다. 물론 github 인증 필요
git push origin apache_druid_vuln
- 내가 fork한 repository로 이동하면 New pull request 버튼이 표시된다. 클릭 후 제목 및 설명 입력하고 PR 생성한다
cf) PR 시 수정사항이 서브모듈로 표시될 때
- 서브모듈은 하나의 Git 저장소 안에 다른 Git 저장소를 포함하는 방법이다
- 이렇게 하면 본래의 Git 저장소에서 서브모듈의 내용을 직접 볼 수 없고 사진처럼 서브모듈에 대한 참조만 볼 수 있다
* 왜 일반 폴더가 아닌 별개의 Git 저장소(=서브모듈)로 취급이 되는가?
- 해당 폴더 내부에 .git 폴더가 있기 때문이다 (미리 업로드 테스트하느라고 .git이 존재했었다)
rm -rf apache-druid/CVE-2021-25646/.git
이렇게 .git 제거 후 변경사항 commit 후 push 하니까 pr 내용이 자동으로 업데이트 되더라
cf) error: 레퍼런스를 ~에 푸시하는데 실패했습니다 현재 브랜치의 끝이 리모트 브랜치보다 뒤에 있으므로 거부되었습니다
- git pull origin apache_druid_vuln 이렇게 리모트 저장소의 최신 변경사항을 현재 로컬 브랜치에 merge 하고
- git push origin apache_druid_vuln 이렇게 다시 push 한다
'security > 화이트햇' 카테고리의 다른 글
WTF(What The Fuzz) 퍼저를 활용해 타겟 분석하기 (2) | 2024.01.06 |
---|---|
WinAFL 퍼징을 통해 타겟 분석하기 (1) | 2024.01.06 |
PCAP Programming (0) | 2023.09.23 |
UDP/TCP Attack 실습 (0) | 2023.09.20 |
Packet Sniffing and then Spoofing 실습 (0) | 2023.09.18 |