--- Git을 활용한 GitHub에 소스코드 Push
# mkdir git-test && cd $_
# echo "Hello World" > README.txt
# git init
Initialized empty Git repository in /root/git-test/.git/ # 로컬 저장소
-- 내부에서의 commit (개발자 입장)
README 파일을 push하기 위해 git-test폴더를 로컬 레포지토리로 만듦
버전관리를 위해 작업자의 정보를 기재
어떤 작업을 했는지 다른 작업자가 알 수 있도록 add site라는 메시지를 남긴 것
만약 이렇게 추가 작업이 생긴다면 다시 add하고 commit해야 함
새로 추가된 내용에 대한 add와 commit
git log를 통해 시간대별 commit내역 확인 가능(=버전관리)
checkout을 통해 Hello World만 있을 때로 롤백(checkout 명령어 뒤에는 commit 아이디 입력)
checkout하여 롤백 완료
checkout 후 다시 최근의 작업으로 돌아가고자 할 때
-- 원격 레포지토리에 commit
원격 저장소의 주소를 복사
원격 저장소를 추가한 후, 해당 공간에 업로드하겠다는 의미
같은 저장소 내에서도 공간이 분리될 수 있음, master(branch)라는 저장 공간 외에도 다른 저장 공간 생성 가능, push 명령어를 실행 후 Token을 입력해야 함
Token 입력 팝업창이 생성됨
settings
좌측 메뉴에서 Developer settings
personal access tokens
Generate new tokens
token이름 정해주고 repo만 체크(대부분 권한과 관련한 항목), 이후 Generate token하면 token이 생성됨, 토큰은 다시 볼 수 없으니 잘 기억하기
token입력 후 push 완료
test-dev 레포지토리에 README.txt파일 업데이트된 것 확인 가능
-- 저장소의 내용을 pull한 후 내용을 변경하여 다시 push하기
clone을 위해 저장소의 주소를 복사
clone을 통해 test-dev에서 원격 저장소에 대한 리모트 설정 완료
test-dev라는 리포지토리를 내려받음
NIHAO라는 소스코드 추가
변동 사항이 많을 때는 .으로 test-dev 내의 모든 변동된 내용 추가
add된 내용을 commit
변경된 내용을 원격 저장소의 master 브랜치에 push
-- 원격 저장소의 새로운 commit을 로컬 저장소에서 갱신하기
=> 처음에 내려 받을 때는 git clone을 쓰지만, 이미 폴더 내에 리포지토리에 대한 정보를 가지고 있을 경우
git-test폴더에서는 아직 NIHAO라는 내용 표시 안 됨
변경된 내용이 있으면 해당 내용을 가져오게 됨
README를 삭제하고 싶을 때
지울 때는 add 필요 없음
지운 내용을 push하여 원격 저장소에서도 지워지도록 함
-- Git Lab
vBox로 centos7 가져오기
네트워크 : 어댑터에 브리지 사용, 이후 vm 시작하여 mobaXterm 접속하기

IP를 정확하게 입력해야 함 : 추후 저장소의 IP가 됨
git lab설치 후 설치 시 기입했던 IP로 접속
cat /etc/gitlab/initial_root_password : 패스워드 출력됨, Username은 root로 하여 git lab에 로그인
Preferences
좌측 메뉴의 Password
패스워드 변경
-- 사용자 만들기
Register now, Register해도 관리자 승인 전에는 로그인 안 됨
root user로 로그인해서 Admin 클릭
좌측 메뉴에서 Users 클릭, Pending Approval에서 드롭다운 메뉴를 Approve로 변경해주기
다시 사용자 계정으로 로그인
-- A 사용자는 centos(로컬 저장소), B사용자는 Window
Create a project
Create blank project
내용 기입 후 Create project (프로젝트가 일종의 리포지토리)
centos에 git 설치 : yum install -y git
아직 일반 폴더
git-test 폴더를 로컬 저장소로 만듦
작업자의 정보 기입
add와commit
새로운 내용 추가 후 다시 한 번 add와 commit
git log를 통해 commit한 내역 확인 가능
commit ID 앞 부분 일부만 입력해도 checkout 가능
checkout을 통해 add site라는 commit 메시지를 줬을 때로 돌아감, git checkout -로 최근 작업 내역으로 돌아가기도 가능
git lab의 프로젝트 주소를 복사(git lab의 프로젝트는 git hub의 리포지토리와 유사)
push하기 전에 브랜치에 걸려 있는 protection을 Unprotected로 변경해야 함
Unprotacted => 이후 git branch -M main을 통해 origin을 main브랜치로 변경 후 git push origin main으로 push하기
B사용자가 clone
새로운 내용 추가
push까지 완료
--만약 이전에 등록된 Token이 있다면? (git push origin master 실행 시)
사용자 계정
Windows 자격 증명 관리
자격 증명 항목에 git.com과 관련한 증명 정보가 있다면 삭제 후 다시 git push origin master