1. cmd실행
2. cd 명령어 사용해 연결할 폴더로 이동
$cd 디렉토리주소
ex. $cd C:/Users/git
3. $git clone 불러올 repo주소 이용해 연결
붙여넣기 - Ctrl + v 안되면 마우스 우클릭
1. cmd에서 cd 명령어 이용해서 해당 폴더로 이동
2. $git pull 입력하면 새로 업뎃된거 불러와짐
1. 깃허브 가입
2. 깃에 새로운 Repo. 생성
3. cmd 이용해 local pc 에 repo. 복제
$git clone [내 repo.주소]
1. cmd 에서 연결해둔 디렉토리로 이동
2. 사용자 등록
$git config --global user.email"이메일"
$git config --global user.name"아이디"
3. 연결해둔 repo디렉토리에 깃에 올릴 파일 옮겨두기
4. 백업할 파일 명단 작성 (add)
파일 명단 = Staging Area(Snap shot)
$git add 파일명
5. 백업 명단에 기록한 파일을 로컬저장소에 백업 (commit)
$git commit -m “내용”
내용에는 어떤 파일인지 간략한 코멘트 적기
6. 서버에 업로드
$git push
!! 여기서 아이디, 비번 입력하라고 뜨는데 그냥 로그인하면 아이디 비밀번호 노출 가능성 있음
⇒ 보안토큰 발급받기
깃허브 settings – Developers settings – personal access tokens - generate
참고 : [https://pythonq.com/so/git/154](https://pythonq.com/so/git/154)
git add * → .gitignore에 있는 것 상관없이 모두 추가
git add . → .gitignore에 명시된 것을 고려하여 모두 추가
git add -A → 모든 변경 준비
git add -u → 새 파일없이 수정 및 삭제 단계
local repository → clone → git client repository → 최신파일 check out
새로운 파일 생성 → 백업명단에 등록 (add) → 로컬저장소에 백업 (commit) → 로컬 저장소 변경내용을 서버에 업로드(push)
폴더에 저장소 등록
$git clone [url]
백업명단에 등록
$git add 파일명
하위폴더까지 전부 탐색해서 새로운 파일 등록하려면 파일명 대신 .
와일드카드 *를 이용해 특정 파일들만 올리는 것도 가능
ex. 특정 확장자만 등록하고 싶으면 * .확장자 ( .js ) *
명단을 저장소에 백업
$git commit -m “키워드”
깃허브 저장소에 업로드
$git push
깃허브 파일 체크아웃
$git pull
C:\Users\git\
$dir 명령어 → 디렉토리 내 파일 확인
.git/ → 백업 폴더 저장소. 숨김처리 되어있음! 숨김해제해야 보이는데 굳이 안해도됨
두 사용자가 같은 깃의 같은 리포를 사용할 때 발생하는 충돌현상
⇒ '머지' merge
같은 리포를 연결해서 사용하는 두 개발자 A,B
A가 먼저 푸쉬를 한 상태에서 B사용자가 또다시 같은 파일을 따로 푸쉬하면 발생
이미 업로드 된 파일보다 올리려는 파일이 더 구버전이라고 덮어쓰기 거절되는 것
A : add → commit → push ⇒ OK
B : add → commit ⇒ OK → push XX Error 발생
B가 $git pull 명령어를 이용해 A가 올려 업데이트된 리포와 연동
초록색 부분이 B가 올리려던 것
밑에 파란색 부분이 A가 올려둔 부분
→ 서로 상충되는 부분 보여줌
원하는 방향으로 수정 후 다시 add → commit → push 진행
로컬 디렉토리에서 삭제한 후 삭제한 상태를 깃에 push
주의) 파일 삭제해도 백업내역에는 영원히 남아있게됨
파일을 삭제한 것이 아니라 삭제된 상태를 새로 덮어씌워 업로드한 셈이기때문에
공유할 repo에서 settings → manage access → invite a collaborator → 공유해줄 아이디 입력
공유했던 repo → settings → manage access → 밑에 공유한 repo목록 → 해제하기
다른 사람이 나에게 Git 공유 → 깃헙에 등록한 이메일로 공유확인 메일 → view invitation
Git → settings → repositories → 공유목록 → 공유해제 할 repo에서 leave 선택
참고 : [https://velog.io/@psk84/.gitignore-%EC%A0%81%EC%9A%A9%ED%95%98%EA%B8%B0
Git Pro 도서 45p
Ex.
로컬 repo1 에 hello.c hello.java 등 파일 존재
로컬 repo2에 hello.c hello.java 등 파일 존재
서버 repo.에 hello.c hello.java 존재
로컬repo1 에서 hello.c. windows32 컴파일러로 컴파일 → hello.exe
→ push 하면 windows32에서만 실행되는 파일 hello.exe 업로드
로컬repo2에서 pull로 내려받아서 동기화 → 그래도 hello.exe 실행 불가
같은 소스파일 hello.c 를 자기가 사용하는 서로 다른 컴파일러로 컴파일 하고싶을 때
소스파일이 아닌 실행파일을 올리는건 소용없음 → 운영체제 다르면 구동X
특정 OS에서 컴파일된 실행파일이나 로컬 경로를 가리키는 설정파일은 다른 pc에서 실행못함
특정 IDE(통합개발도구) 의 사용자(개발자) 설정도 공유할 필요X
→ 되도록 소스파일 형태로 공유하기
→ git 저장소에 백업하지 말아야할 파일을 지정해줄 필요가 있음 ⇒ .gitignore 파일
어느 파일을 제외할지 작성 → 주로 로컬 개발 환경에 종속적인 파일제외
파일명 앞에 . 있는 이유? → 유닉스 규칙 . 으로 시작하는 파일, 폴더는 숨김처리
보통 숨김처리 하려고 .으로 시작
but, 윈도우는 자동처리 안되고 설정에서 숨김처리 해줘야함
$git add . 명령어 사용시 gitignore 처리 후 해당하는 파일만 백업함
Visual Studio Code에서 새로 만들어진 파일 옆에는 U 표시 뜨는데 이 gitignore 적용된 파일은 뜨지않고 파일명도 회색처리
https://www.toptal.com/developers/gitignore
설정값 넣으면 gitignore 소스 만들어주는 사이트
git pro 중
Git으로 관리하지 않을 파일을 지정한다.
예를 들면 로그 파일(.log)이나 빌드 도구가 자동으로 생성한 파일 또는 디렉토리 등.패턴을 사용하여 Git이 무시할 파일을 지정한다.
빈 줄이나#
으로 시작하는 줄은 주석으로 간주한다.
표준 Glob 패턴을 사용한다.
/
로 시작하면 하위 디렉토리에 적용되지 않는다.
디렉토리는 끝에/
을 붙인다.
!
로 시작하는 파일은 무시하지 않는다.