(계속 업데이트 중 🌱)
먼저 할일 :
1. git 다운받기
-> 클릭하면 자동으로 다운받아진다.
자동 다운이 실행안되었을 경우 'Click here to download manually' 클릭해서 수동 설치합니다.
2. GitHub 회원가입
github 들어가서 회원가입 & 저장소 만들기↓↓↓
☞ git 사용해서 github으로 내 소스 올리기
1. git init | git를 시작하겠습니다. |
visual studio 의 사용할 파일 들어가서 Ctrl+Shift + ` 입력 - >터미널 켜짐 -> 위의 git init 명령어 실행
=> 나 이 폴더 git으로 사용한다! , 해당 폴더에 불투명한 숨겨진 .git 파일이 생김.
git status 명령어로 확인해보면 파일들이 아직 안담겨있음.
2. git add . -> 여기서 반드시 . 앞에 space 띄어쓰기 ** | git에 해당 폴더 모든 내용을 담겠습니다. |
git add index.html 이렇게 파일 하나하나를 add 담을 수도 있다.
* add라는 것은 담는 의미이지 아직 git에 commit 한 것은 아님
* commit 새로운 commit이란 걸 만든다. 저장한다. 라는 뜻
약간 요 아래 뜻으로 이해하면 될 것 같다.
- 9. 타동사 [VN] ~ sth to memory~을 마음에 새기다[기억하다]
- She committed the instructions to memory. 그녀는 그 지시 사항들을 기억해 두었다.
3. git commit -m "update everything" | add로 담은 내용을 commit 합니다. |
* -m 의 뜻은 memo 이다. " " 요 안에 들어가는 내용은 내가 기록하고 싶은 내용을 담는다.
git status
-> commit 할 것이 혹시나 남았나 확인
-> nothing to commit 나옴. 굳
git log
-> 과거 history 보기
-> 나중에 이 commit으로 돌아오고 싶을 때 저 노란 commit 넘버를 쳐서 돌아올 수 있다.
너무 기니깐 앞 6자 정도만 써도 된다.
* 여기서 메모 -m "~" 부분을 빼고
git commit 명령어만 실행하게 되면 edit 창이 열리고 다음 명령이 실행되지 않는다. (메모장이 열림)
이 경우 명령어 [ :q! ] (대괄호 제외) 를 써서 되돌아가면 된다.
4. git remote add origin [url주소] | git hub의 내 저장소, repository로 보내기 |
git hub에서 본인이 만든 저장소의 주소를 복사 해서
git remote add orgin url주소 명령어 입력하면 된다.
주의할 점 * 여기서 ERROR 가 많이 나옴
git remote add origin [url주소] 를 정상적으로 입력해도 나의 github저장소에는 코드가 잘 도착하지 않았다.
-> 다시 위의 명령어를 입력하니
ERROR: remote origin already exists.
라고 나온다. 이 때 해결 방법은 기존의 했던 것을 삭제하고
1. git remote rm origin
2. git remote add origin [url주소]
3. git remote -v : 연결상태확인
4. git push origin master :github로 push *push: 코드를 gihub에 넣는다.
-> 다시 나의 저장소로 가보면 해당 폴더가 들어와 있다!
5. git push origin master | github 저장소로 PUSH ! 넣기 |
Push 할 때 많이 뜨는 ERROR 403
remote: Permission to ohse-emily/JavaScript.git denied to LSH7875.
fatal: unable to access 'https://github.com/ohse-emily/JavaScript.git/'
: The requested URL returned error: 403
주의할 점 * 여기서 ERROR 403이 뜬다면 이는 github에 코드를 PUSH할 때 해당 주소에 대한 권한이 없기 때문에 거절당한다.
해결 방법 (1)
1. git remote set-url origin https://github-username@github.com/github-username/github-repository-name.git
github-username : github에서 사용하는 username
github-repository-name : github 코드 넣을 저장소 name
=> 위의 명령어를 실행하면 깃허브 repository에 대한 접근 권한 / 인증을 받으면 된다.
2. git push -u origin master
나의 repository 로 set되어서 push 만 해주면 된다.
이 경우에도 안되면
해결 방법 (2)
제어판 - 사용자 계정 - 자격 증명 관리 - windows 자격 증명- 일반 자격 증명에 있는 github.com 을 삭제해주기
여기까지 했는데
ERROR: remote origin already exists. 에러가 난다면
위의 4번에 있는 오류 해결처럼 해보기
해결 방법 (3)
1. git remote rm origin
2. git remote add origin [url주소]
3. git remote -v : 연결상태확인
4. git push origin master :github로 push *push: 코드를 gihub에 넣는다.
-> 다시 나의 저장소로 가보면 해당 폴더가 들어와 있다!
최상위 폴더 한개로 upload 하고 싶다면
(처음에는 하나의 저장소 안에 여러개의 폴더를 넣고 정리하려고 했으나 그 땐 github에 대해 잘 몰랐을 때 그게 가능한 줄 알앗다. github 하나의 저장소에는 하나의 프로젝트를 넣는게 일반적이고 그게 맞는거였다! ---> 즉, 최상위 폴더 한개로 github 저장은 비추천 ! )
방법
last 라는 폴더 안에 여러개의 폴더들과 파일들이 있다. cd . . 명령어를 써서 한 번 경로를 나간 뒤 올리면 last 폴더 1개로 git에 올려져서 편하다.
위의 명령어 실행 전 현재 경로 위치 체크 !
문서로 나가서 last라는 폴더를 github에 올리고 싶다면
1. 현재 경로 확인 : 문서로 나가고 싶으면 cd.. 입력
2. 문서 위치에서 init 시작
git init
git add [폴더명/] (대괄호 불포함, / 슬래쉬는 습관적(?))
git commit -m "update"
git remote add origin [my-repository-url]
git push origin master
제외하고 싶은 폴더 (데이터양이 엄청 많은) 가 있다면 ?
.gitignore 사용하기
1. 현재 위치 (문서로 나온 위치) 에서 해당 폴더 안에 .gitignore 이름의 메모장 생성
** .gitignore.txt 가 아닌 .gitignore 이라는 이름!
2. 제외하고싶은 폴더 명 **/ 뒤에 입력만 하면 끝 @
(**/ 가 없어도 된다! )
그 다음의 명령어들은 위와 같다.
* .gitignore에 파일을 넣고 git push를 한 상태. 그리고 또 다른 파일을 gitignore에 넣게 되면 ? ---->
gitignore 이 작동하지 않는다 !
해결방법 ↓↓↓
https://blckchainetc.tistory.com/273
* 만약 문서로 나오기 전 이미 해당 폴더 안에서 git init을 했다면 ?
문서 - 해당 폴더에 들어가 숨어있는 .git 파일을 찾아 삭제하면 된다.
* clone 으로 코드를 가져왔을 때 ->
npm install 명령어 쓰기 !
- packa.json에 있는 packages 다 알아서 다운 해줌
*clone으로 코드 가져와서 다시 push 하기
clone 주소
git add .
git commit -m "d"
git push origin master
*주의 git add . + git commit 할 때 clone 해온 그 폴더 경로에서 해야한다.
작은 단위 폴더에 들어가서 git commit안된다고 다시 git init 하면 오류지옥에 빠짐
☞ git hub 상대방의 저장소 불러오기, 내용 수정 및 업데이트 (협업 시)
* 주의사항 불러올 파일을 git init 을 하지 말아야함. 불러올 상대방의 파일은 이미 git.init이 되어있을 거기 때문에
1. 클론하기 (상대방의 저장 내용을 내 pc로 옮기기 히스토리 등 모두 옮겨와짐. 즉 git init 이 되어 있는 상태 ! ) | git clone url(상대방 git hub 주소) |
2. 불러온 상대방의 파일 안으로 들어가기 | cd .\HelloWorld\ (여기서 \ = 역슬래시) |
3. 내용 수정 하기 | - |
4. add / commit 하기 (상대방의 기트에서 내 컴퓨터에 기트를 복사해온 상태, 클라우드에서 파일을 다운받았은거랑 비슷 - 수정 후 해줘야함. | git add . / git commit -m "memo" |
5. Push 하기 (깃헙 Github 으로 업데이트 연결되게 올리기) | git push origin master |
Push 한 상태에서 내 컴퓨터로 Git hub 상대방의 기트 내용 변경된게보이지만 상대방은 Pull 받아주는걸 해야 상대방한테도 보임. | |
6. (상대방 입장) 내용 수정이 있는지 확인하기 | git fetch |
7. (상대방 입장) 수정이 있다면 변화된 내용을 받기 | git pull origin master |
내용을 또 수정한다면 위의 3번부터 다시 반복 |
나의 settings 가서 상대방 manage contributor 로 추가해주기
내용을 또 수정하고
바로 git push origin master 하니깐 내용 안변함
내용 수정 후 git add . / git commi -m "" 를 해야 github에 있는 파일 내용이 바뀜
☞ GIT 명령어 정리
git init | git init -> .git 숨김파일 생김 / git 사용한다 ~ 선언 |
git add 파일이름 | sub.html 파일을 추가한다. (근데 바구니(인덱스) 안에 넣기만) |
git status | 상태 알려줌 |
git commit -m "add sub.html" | "add sub.html"이라는 메모와 함께 commit (동그라미에 sub.html)를 넣음 commit = 디렉토리에 있는 모든 파일에 대한 스냅샷을 기록 저장소를 복제(clone)하려면 보든 변경분(delta)를 풀어야하는데 이 때문에 명령행 결과로 resolving deltas 라는 문구가 있음. |
git add . | 변경된 모든 내용을 한번에 바구니(인덱스)에 담는 개념 |
git commit -m "update index.html" | index.html 전체에 업데이트 함 -> 추가안된거 다 한번에 됨 |
git.log | log 보기 (과거 행적, 특히 commit ) |
git reflog | 복구하고 싶은 원하는 위치 찾기 (commit, checkout, reset 등 다 나옴) |
git reset --hard (--hard는 아예 삭제해버리는 위험한 명령) | log or reflog에서 구한 값을 써서 원하는 곳으로 이동 |
git branch | 현재branches 상황, *위치 나옴 * 있는 곳에 내가 있다. 브랜치 = 특정 commit 에 대한 참조 reference |
git branch sample | sample 이라는 branch 만들기 |
git checkout sample | sample 이라는branch 로 * 옮기기 |
git checkout master | master (main)으로 다시 * 옮기기 (파일들도 다 따라 생기고 없어짐, 포커스 변경) |
git branch -D sample | sample branch를 지우기 |
git pull | 받기 |
git fetch | 원격 저장소에 누군가가 바뀌면 내가 그대로 소스달라진거 확인 |
git remote show | |
git remote add origin url | 현재 git 를 내 저장소로 보내기 (pop up창 열림) |
git remote rm origin | git remote add origin url 으로 이미 연결된 것을 취소 |
git pull origin master | pull 받는거 (달라진거petch를 한후 하는거) |
git push | push 보내는거 |
git push origin master | 원격저장소에 보내기 |
git cherry pick | |
git rebase | commit들을 모아서 복사한뒤 다른 곳에 떨궈 놓는 것 장점 : commit들의 흐름을 보기 좋게 깔끔히 한 줄로 만들 수 있음. 저장소의 commit log & history가 한결 깨끗해짐. |
git merge | 합치기 (두 부모가 같도록) |
git clone url | 클론하기 (상대방의 저장 내용을 내 pc로 옮기기 히스토리 등 모두 옮겨와짐. 즉 git init 이 되어 있는 상태 ! ) |
npm install | git 명령어는 아니지만 git clone 했을 때 터미널에 npm install을 입력하면 package에 있는 모든 설치된 라이브러리들을 자동으로 설치해 준다. |
:q! | git commit 누르고 edit 창 열렸을 때 끄는 명령어 |
VisualStudio extensions 다운
Git Graph - git 전체 상황을 그래프로 볼 수 있어서 좋음!
Git branch 공부
https://learngitbranching.js.org/?locale=ko
'code 정리 모음집' 카테고리의 다른 글
Amazon EC2 Linux 인스턴스 호스팅 / 배포 / 리눅스 명령어 정리 (0) | 2021.07.26 |
---|---|
[GitHub] .gitignore 가 안될 때 / git에서 해당 파일의 변화를 감지하고 트래킹할 때 멈추게 하는 방법 (0) | 2021.07.16 |
[Webpack] 웹팩 CRA 없이 React 개발 환경 구축 및 핫리로드 & CRA 사용버전 (0) | 2021.07.05 |
Node.js express로 서버 만들기 / 순서, 절차 정리 (0) | 2021.04.26 |
mySQL MariaDB 다운로드 / 사용법 / 명령어 총 정리 / 날짜 함수 date_format() now() (0) | 2021.04.26 |