티스토리 뷰
🏷️ 목차
📌 Git
📌 GitHub
📌 Git
– 컴퓨터 파일의 변경사항을 추적하고, 여러명의 사용자간의 해당파일을 수정 및 관리하는 버전관리 시스템.
ex ) 최최최최최최최최종.ppt
– 전체 소스코드를 공유하면서 동시에 개발을 진행하기 때문에 필요.
– 여러명의 개발자가 하나의 코드를 동시에 수정도 가능.
→ 충돌에 대한 문제가 발생할 수 있음.
– 원하는 버전의 변경이 수월하며, 누가 뭘 했는지 기록이 남기 때문에 코드리뷰가 가능함.
– 대부분의 IDE에서 지원 가능.
• 참고하면 좋은 사이트
– https://learngitbranching.js.org/?locale=ko 게임으로 배우는 Git
– https://backlog.com/git-tutorial/kr/ 누구나 쉽게 배우는 Git
– https://git-scm.com/book/ko/v2 Git 에 관련한 정보들과 ebook 제공
▸ Git 프로세스
• Working Directory
– 작업하는 PC의 '작업 공간'. (= 폴더)
• Staging Area
– 쉽게 말해 '임시 저장 공간'.
– 커밋 예정인 파일을 저장하는 공간.
• Local Repository
– LocalHost가 나를 뜻하는것 처럼 Local Repository는 '내 컴퓨터의 저장소'를 뜻함.
→ PC에 저장되는 저장소.
• Remote Repository
– Remote Repository는 쉽게 말해 'GitHub'를 뜻함.
→ Local의 작업내용을 Remote로 보낸다면 필요한 작업 내용을 언제 어디서든 사용 가능해짐.
– fetch는 조금 바뀐것, update는 많이 바뀐 것.
ex ) 게임 fetch 또는 게임 update
– clone은 아무것도 없는 나의 컴퓨터에 작업물을 가져오는 개념.
📌 GitHub
– 설명설명
▸ Git 초기 설정
1 ) Git 초기화
git init
– C드라이브안에 임의로 Git폴더, 안에 TestGit폴더 생성하면 TestGit은 작업공간 즉, Workingdirectory가 됨.
– 해당 위치가 이제 나의 작업공간이므로 폴더 안에서 우클릭하여 GitBashHere 클릭.
– 'git init' 명령어를 입력하면 '.git' 폴더가 생기고, 해당 폴더는 숨은 폴더이므로 '숨긴 항목'을 체크해줘야 볼 수 있음.
2 ) 사용자 정보등록
git config --global user.email "깃허브 이메일주소"
git config --global user.name "깃허브 닉네임"
– 해당 작업공간에서 사용할 정보를 등록해줌.
– 여기서는 --global 옵션을 추가했으므로 모든 레포지토리에 내가 입력한 사용자 정보로 업데이트 됨.
만약 해당 래포지토리에서만 따로 사용하고 싶은 메일과 닉네임이 있다면 --global 옵션 빼고 입력하기.
3 ) 상태 확인
git status
– 아직 commit된 파일이 아무것도 없음을 알 수 있음.
4 ) test.txt 파일 생성
– TestGit 폴더에 간단한 txt파일을 하나 생성해봄.
– 생성된 파일이 보임.
– 한글로 해도 되지만 여기서 보기 불편하므로 파일 이름은 되도록이면 영어로 작성할 것.
▸ add / commit / log / push / pull
1. staging에 파일 추가하기
1 ) 파일 지정
git add [untracked] 파일명
– untracked는 현재 git에서 add명령어로 추적하지 않는 파일을 뜻함.
– add 명령어를 통해 파일을 추적상태로 변경하므로 add 명령어 뒤에 파일명과 확장자를 입력해줌.
2 ) 모든 파일
git add .
– add와 . 사이에는 꼭 공백이 존재해야 함.
3 ) git 상태 확인
git status
– untracked였던 파일이 tracked로 변경됨.
→ 이제부터 해당 파일의 변경사항에 대해 추적을 하겠다는 의미.
– 메모장 내용을 수정하여 변경사항을 만들고 다시 git status 명령어를 입력해봄.
– 뭔가가 변경되었음을 알 수 있음.
2. 세이브 포인트 생성 (Commit)
git commit -m "파일생성"
– m은 메세지를 뜻함. 따옴표 안에 commit 메세지를 작성해줌.
git status
git add .
git status
git commit -m "내용 수정"
3. git log 조회
git log
– 이때까지의 Commit 기록들을 조회할 수 있음.
– 만약 에러발생으로 창을 나가고 싶다면 리눅스와 동일하게 탈출 명령어 :q를 입력하면 됨.
git log --all --graph --oneline
– 위에서 보던 여러줄의 log들을 한 줄로 요약하여 그래프형태로 볼 수 있음.
4. 파일 내용 변경
– 위에서 작성한 테스트파일 내용을 임의로 변경하고 다시 status 상태 확인함.
– 변경사항이 있음을 알 수 있음.
git add .
git status
– add . 하고 다시 상태를 보니 수정된 것도 추가가 됨.
git commit -m "내용 2차 수정"
– 내용 수정했으니 Commit 메세지 작성과 함께 Commit.
5. 삭제된 파일 되살리기
git status
– 위에서 만든 테스트파일을 임의로 삭제하고 status 명령어로 상태를 확인하니 파일이 삭제되었음을 알 수 있음.
git log --all --graph --oneline
– log를 조회하면 아까 내가 생성해놓은 SavePoint(Commit ID)를 볼 수 있음.
– 998c308이 가장 최근에 저장한 SavePoint이며 이는 다른 말로 Commit ID라고도 함.
git checkout [커밋 아이디]
– 제일 마지막에 Commit을 했을 때 이미 파일이 없는 시점이라 되돌리기가 안됨.
→ 파일을 지운 상태로 Commit을 한 것.
→ 그럼 그 전 단계(log 조회 시 불러왔던 기록 중 2번째 Commit ID)가 제발 있길 바라면서 불러옴.
– 이렇게 원하는 시점의 Commit ID를 적어주면 파일 되살리기 성공 !
git log --all --graph --oneline
– HEAD는 현재 내가 보고 있는 시점을 뜻함.
git checkout master
git log --all --graph --oneline
– 원래 위치(master 브랜치)로 돌아감. 즉, 최신의 Commit 상태로 돌아가는 명령어.
– 위에서 최신 단계가 아닌 전 단계로 돌아갔었는데 다시 최신 단계로 돌아온 것.
EX ) git 생성 & 삭제 & 되돌리기 |
git status
– 2_BUSAN.txt 새로운 파일을 하나 생성함.
– add 명령어를 사용하지 않았으므로 해당 파일은 아직 추적하지 않는 상태.
git add 2_BUSAN.txt
– git에 추가(add)하여 추적하는 상태로 만듬.
git commit -m "파일 생성"
– Commit 메세지와 함께 Commit.
git log --all --graph --oneline
git checkout 998c308
– 원하는 시점의 Commit ID에 커서를 두고 shift + insert 하면 자동으로 복사되어 입력됨.
– Commit 시점을 잘 생각해야 함.
2번째 Commit ID(998c308)를 지워야 그 시점 이후로 삭제하여 2번째로 내가 생성한 파일을 지울 수 있음.
6. 내 컴퓨터(Local)와 원격저장소(GitHub) 연결
git remote add origin [깃허브 레포지토리 주소]
git push origin master
– Local에서 작업한 작업물을 원격으로 push하는 동작.
– Sign in with your browser 를 클릭하고 동의하면 나의 Repositories에서 Itwill_Test에 들어가면 내가 만든 master 있음.
7. Git에서 수정한 파일 Local로 가져오기 (Pull)
git pull origin master
– 위에서 git으로 원격으로 변경한 사항들을 나의 Local로 가져오는 기능.
– 내 컴퓨터에 있는 파일을 열어보면 원격에서 수정한 내용들로 파일 내용이 변경되어 있음.
📝 마무리
기본적으로 Git이 어떤 원리와 흐름으로 작동하는지 프로세스를 통해 이해하고
계속 사용하면서 용어에 친숙해지면 Git만큼 편한 프로그램도 없다 ㅎ_ㅎb
'GIT & GITHUB' 카테고리의 다른 글
Eclipse에서 Import 프로젝트 시, 이미 존재한다고 안될 때 (0) | 2023.08.08 |
---|---|
Local에 프로젝트 먼저 생성 후 GitHub와 연동하기 (0) | 2023.08.02 |
로컬에 Clone하고 원격저장소에 Push하기 (0) | 2023.07.23 |
- Total
- Today
- Yesterday
- model2
- github
- Dao
- Git
- 다형성
- Java
- Method
- JSTL
- 주석문
- null
- 문자형
- DB
- 내장객체
- jsp
- 단일행함수
- 원격저장소
- 인자
- 업캐스팅
- 논리형
- 데이터타입
- gitbash
- 매개변수
- 출력문
- 로컬저장소
- 숫자형
- Object
- mysql
- 제어문
- 오버라이딩
- javascript
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |