🤷♀️깃허브?
나의_깃허브
깃허브(GitHub)는 소프트웨어 개발 및 버전 관리를 위한 클라우드 기반 코드 호스팅 플랫폼입니다. 개발자들이 협업하고 프로젝트를 관리하며, 소스 코드를 저장하고 추적할 수 있는 도구를 제공합니다.
📓기본 사용법(cmd)
- 깃허브 홈페이지 가서 Repository를 만듭니다.
- git으로 등록
cmd에서 올리고자 하는 파일의 경로로 가서 git init을 친다.
이제 ".git" 이라는 폴더가 안에 생성된다. 이제 이 폴더는 git으로 관리가 된다.
- 상태확인(status)
git status로 현재 관리중인 폴더의 상태를 볼 수 있다. (빨간색은 tracking하지 않는 파일들이다.)
'git add*' 를 치면 폴더안의 모든 파일이 추가되어 초록색으로 바뀌면서 관리가 된다.
- 환경설정(configuration)
git config --global user.email "이메일"
git config --global user.name "이름"
해당 명령어들로 관리중인 폴더의 사용자 이메일, 사용자의 이름을 등록한다.
- 커밋(commit)
git commit -m(주석) "(주석에 들어갈내용)" 을 치면 된다.
내 local repository에 commit 된 것이다.
- 서버에 올리기위해서 branch작업을 한다.
git branch -M main
깃의 기본 브렌치는 main으로 되어있다. 로컬브렌치를 main으로 바꾸기 위해 위의 명령어를 사용한다.
- 주소연결
git remote add origin <깃허브 repo_주소>
현재까지의 작업은 로컬 스토리지, 즉, 내 컴퓨터 안에서만 이루어지는 작업이다.
깃허브로 파일들을 보내기 위해서 깃허브 주소를 등록해준다.
- 푸쉬(push)
git push -u origin main
내가 등록한 깃허브의 repository로 자료를 밀어넣는다.
🎋브렌치(branch)
브랜치(branch)는 프로젝트에서 특정 작업을 할 때, 코드를 분리하고 독립적으로 관리하는 공간이다. 이를 통해 여러 작업을 동시에 진행하거나 안정적인 메인 코드를 유지할 수 있습니다. 각 브랜치는 특정 작업을 나타내며, 작업이 끝나면 원하는 시점에 메인 코드와 합칠 수 있습니다. 이렇게 함으로써 협업과 프로젝트 관리를 더욱 효율적으로 할 수 있습니다.
- 브렌치 변경
git checkout main
checkout 명령어로 원하는 브렌치로 이동한다.
- 브렌치 생성
git checkout -b newBranch
새로운 브렌치를 생성하면서 해당 브렌치로 이동합니다.
- 이전 브렌치로 이동
git checkout -
-로 이전에 사용하던 브렌치로 이동할 수 있습니다.
특정 커밋으로 이동하기
특정 커밋으로 이동하는 것도 `git checkout`로 가능합니다. 대신 브랜치 이름이 아닌 [SHA(Secure Hash Algorithm, 안전한 해시 알고리즘)](https://ko.wikipedia.org/wiki/SHA)를 명령어와 함께 전달해야 합니다.
**커밋 SHA 찾기**
특정 커밋의 SHA를 찾는 방법은 Git 로그를 조회하는 것입니다.
이때 `git log` 명령어를 사용합니다.
각 커밋 기록의 첫 번째 줄에는 `commit`이라는 단어 뒤에 숫자와 문자가 조합된 긴 문자열이 있습니다: `94ab1fe28727...`
이 문자열이 SHA입니다. SHA는 특정 커밋을 가리키는 고유 식별자입니다.
특정 커밋으로 이동하려면 커밋의 SHA를 `git checkout` 매개변수로 전달하면 됩니다.
git checkout 9415
예를들어 SHA가 9415라면, 위처럼 입력하면 해당 커밋으로 이동할 수 있습니다.
🛠️유지보수
- git status 를 하면 수정된 파일들은 빨간 글씨로 뜹니다.
- git add* 로 등록되지 않는 파일들을 등록시켜줍니다.
- git commit -m "modify file"
그리고 커밋해줍니다. - git push
푸쉬해주면 됩니다.
🧏♂️가져오기(clone)
- git clone 깃허브주소.git
해당 명령어로 깃허브의 코드를 가져올 수 있습니다. - 특정 브렌치에 클론하기
"git clone --b<branchname> <repo-url>
"
보통은 repo를 클론하면 무조건 main의 코드를 클론하지만 위처럼 하면 특정 branch의 자료를 클론해옵니다.