본문 바로가기

카테고리 없음

[25일차 zoom 수업] 20210416 github 깃허브 저장소 파일 공유하는 법 수정 후 업데이트 하는 법

반응형

git - local - 내 컴퓨터에 설치해야 작동

리눅스 개발할 때 커널 개발할 때 나온거 

터미널 명령어 정도는 알아야함 

 

분산 소스 버전 관리 시스템

서버를 분산시켜 구축할 수 있게 하는 소프트웨어

소스코드를 효율적으로 관리할 수 있게 해주는 형상관리 도구 

 

지역 저장소를 만들고 파일, 코드 등을 관리하는 작업 

백업 가능

저장했던 시점 기억 

저장했던 시점으로 왔다 갔다 할 수 있음. 

 

협업할 때 특히 개발자들 에게  도움 됨..

 

add - 파일 지정  어떤 파일을  (어따 바구니에넣고)

commit  -> 저 똥그라미에 넣는 것 

 

ㅇ -ㅇ- ㅇ- ㅇ 

add를 한 후 commit을 한다~ 

 

안정성이 뛰어남

신뢰성 높음

오류가 날 수 없대

 

안되면 내 실수래 

 

 

 

 

 

 

github - cloud - id로 들어가 git과 연결해서 사용함

(git)을 사용하는 프로젝트를 지원하는 웹호스팅 서비스

git을 업로드 할 수 있는 웹사이트

개발자들의 버전 제어 및 공동 작업을 위한 플랫폼 

 

 

 

터미널은 뭐지

 

형상관리 시스템 - 소스 저장하는 저장소 

 

 

git 설치하기 

github 아이디 

 

clear / 지우개 

pwd / 내 현재 위치 어디냐 

ls/ 현재 위치한 폴더에 파일들이 뭐뭐잇냐 

cd / 디렉토리 이동 시 사용 

mkdir / 폴더 만드는 명령어  / 사용법    mkdir [폴더명] 

rmdir / 폴더 삭제하는 명령어  / 사용법 mkdir [폴더명]

vi / 편집기 - 

파일이 없는 상태에서 vi index2.html 쓰면 파일이 생성됨

파일이 있는 상태에서 vi index2.html 을 쓰면 파일을 염 

 

 

 

Ctrl + 1orCtrl + Shift + `

 

 

 

 

 

PS -> 디렉토리 나타냄 

 

pwd 현재 위치 

 

 

d ------ -> directory

 

 

 

 

 

 

 

뒤로가기 cd.. or cd 폴더명 

 

 

cd.. 

cd..

2번 뒤로간뒤

cd .|workspace|Hello_git2 

 

 

 

| -> 역슬래시 

맥이나 리눅스는 / 슬래시로 

 

 

터미널에 git init 입력 -> 나 이 폴더  git 사용한다! 라고 하는거 

 

============================점심먹고옴=========================

 

 

터미널에 git init 침

 

해당 디렉토리에 .git 파일을 만듬 

 

add 는 동그라미 만들기 o 

 

 

index.html 이라는 것을 봉다리에 담아논거 . 

 

add 만 하고 status를 보면 

No commits yet 이라고 친절히 나옴 

commit-m

 

해당 내용의 메모. 옵션 

 

최초의 동그라미를 만듬

ㅇ <- 안에 index.html 이 들어가있음

 

계쏙 이렇게 ㅇㅇㅇ 동그라미를 만들어 나갈겨 git add / git commit 사용해서 

 

 

새로운 subpage.html 을 만들어서

body 안에 글자 쓰고 

터미널에 git status 써보기 

git status -> subpage.html 은 아직 git에 업로드 commit 안햇구나~ 

gi

 

동그라미 4개 생김 

 

 

 

메모의 중요성

최신걸로 쭊 과거 나옴 

 

노란건 동그라미의 주소들 

 

 

 

 

 

 

 

파일 동시에 2-3개 만ㄷ르어서 git add / git commit -m "[메모]" 

그래서 총 4-5정도의 파일이 커밋이 됨. 

 

커밋을 3번한거 인지해서 git log 를 써서 

메모를 확인하며 내가 어떻게 작성했는지 보기 

 

그담에 처음으로 돌아가는 대신 이전값을 삭제하는 기능 

 

git reset [commit hash값] --hard 

* --hard 는 git에서 명령을 위험하게 만드는 유일한 옵션. 데이터를 실제로 삭제하는 것으로 결과를 되돌릴 수 없다. 

 

hash값은 -> git 6자리까지만 복사해서 사용하면됨 (그 긴 주소) 

 

 

 

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 이 되어 있는 상태 ! ) 
   

git 게임 출처 : https://learngitbranching.js.org/?locale=ko

 

Learn Git Branching

An interactive Git visualization tool to educate and challenge!

learngitbranching.js.org

commit 

출처 : https://learngitbranching.js.org/?locale=ko

git commit -> c (n) 생성 

 

Branch

 

브랜치 newImage는 C1을 가리킴. 

 

 

 

 

 

 

git reflog -> 참조

 

 

 

 C1 C2 C3 C4

 

Branch 를 C2, C3 를 연결해서 만듬

 

Branch 는 여러 방향으로 네트워크처럼 뻗어 나갈 수 있다 ~  라는 의미

 

git branch

 

git init-> 첨에 일자의 c1,c2-c4 까지 만들어진거 

첫번째 줄을 master 라고 일컬음 . =main 

디폴트 값이 master 

 

첫번째 가지~ 라는 뜻 / 원본 소스 = master

* -> 내가 바라보고 있는 브런치가 마스터다. 

 

git branch [branch명령어]

 

 

git branch sample 하면 아무것도 안나옴 -> 잘 실행된거

git branch 써서 잘 되었는지 확인 

 

 

 

 

별표 옮기기 

뭐 할 때마다 브런치 쓰면서 별표 확인하기 

 

 

git checkout master 

하면 별표 master로 가있음 

 

 

 

 

내 상태가 sample * 인 상태에서 파일 3개 만들어봐 

 

 

 

 

 

 

 

여기서 commit 을 하면 C5가 되는게 아니고 

C5

 

 

 

 

 

 

 

 

d

 

git commit -m 해주고

해봐 

 

git checkout master 로 하면 

포커스가 변경됨 

 오.. 만든 파일 aa, bb, cc 가 왔따 갔따 함. 

checkout master 

checkout sample 을 번갈아 써봐봐

 

 

브런치 여러개 만들어서 서로의 작업물이 달라지겟ㅈ? 

그럼 마스터 브런치 남겨놓고 

a 가 브런치 10까지  b 가 브런치 2까지 햇을 대

b의 브렌치 2의 아이디어를 a의 작업물에 merge 를 하고 싶을 때 

소스를 가져다가 끌고오는것 - > branch 가 이용됨

 

a의 작업물을 master에 넣고. 

 

checkout의 기능은 기똥차다.

 

 

 

 

 

==================local 에서 사용하는 git 의 기초 끝  ================

 

 

==================github ㄱ ㄱ ===============================

 

원격 저장소. 

내가 내 컴터 (local)에서  만든 소스를 인터넷에 저장하는

 

 

소스 tool 이라는 걸 다운받아서 연결할 수 있음. 

지금은 추천안함. 

왜냐면 넘 쉽게 그림그려져서 

일단 생각으로 ㄱ ㄱ 

 

 

 

remove 하더라도 그 안에 속성? path 는 남아 있음. 

 

 

 

 

 

저장소 만드는 법 오른 위 + repository 클릭 

 

 

아직 필요한게 없다고 체크안하고 createㄱ ! 

 

 

 

 

 

 

 

 

연결 된 상태 

 

 

 

요렇게 뜸

 

뭔진모르겟다.

 

git add .

git commit -m "커밋할 내용설명 영역"

git push origin master - 요거 보면

다 잘 됨. 

 

 

클론. 

다른사람 저장소 

로그도 볼수잇음

git clone url

 

남의거를 가져와도 내가 올릴수는 없음. 

하게하려면 -> 원 주인이 settign -> manage access -> Invite a collaborator ->상대방 멜 입력하면 ok

상대방도 세팅해야함.

 

git remote 

는 뭘까

git remote add origin url

 

1. git 설치하기 먼저 ~ 

https://git-scm.com/download/win window 버전 설치하시면 됩니다.

git설치가 완료되었다면.

 

 

윈도우키를 눌러서 "Git CMD" 파일을 실행해주세요.

이후 터미널 창이 나타나면

git config --global user.name "name" git config --global user.email "email@email.com"

실행한뒤

git config --list

실행시켜 결과물을 확인해주세요.

참고 GitHub - ingoo-code/Hello_git: git 사용예제 저장소

 

질문 위에 하는 이유? 안쓰고 하면 하라고 한대 그래서 미리 설정한거 + 다른 개발자에게 내 컨텍 알려주기 

 

Github 내 저장소에 파일 올리기

0. 위에 git 설치 및 git cmd 설정 먼저 ㄱ ㄱ ! 

 

vs 파일 terminal에

1. git init

2. git add . 

3. git commit -m ""

4. git remote add origin url 

 -> 이 주소 url 너꺼 본인꺼가 맞아 ? 라고 질문하는 거 

안뜨면 연결된거 

5. git push origin master

 

(여기서 아래와 같은 오류 생겼을 때 (오류 - 데이터 유실 등의 문제 가능성이 있어 git에서 처리되지 않도록 에러를 띄우는 것이라고 함. git push -u origin +master -> 강제로 push 진행 - 임시방편..)

-> 그래도 고쳐졌다. ㅠㅠ 

 

근데 교수님과 함께 한 오류 고치는 방법은 뭐였는지 기억이 안남.. 

 

 

 

 

저기 git hub 추가된거 들어가서 편집해서 내 아이디 변경 가능 

 

 

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에 있는 파일 내용이 바뀜 

 

 

 

 

 

 

반응형