-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathGitTutorial.txt
More file actions
81 lines (50 loc) · 5.01 KB
/
GitTutorial.txt
File metadata and controls
81 lines (50 loc) · 5.01 KB
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
git --clone : 저장소에 있는 모든 파일들이 내 컴퓨터로 다운로드 됨
내 pc는 localRepository
Git Address : remoteRepository
이후 변동사항이 있는 경우 해당 디렉토리로 cd
git add 파일명
git status 수정된 파일과 add된 파일을 확인할 수 있다.
git log : commit 내역을 확인할 수있으며 HashCode의 값으로 여러 데이터 처리가 가능하다. (나가기는 q)
git reset --hard : 해당 커밋위치로 돌아가며 그 이후에 커밋에대한 정보를 지운다는 의미
git reset : add한 파일을 다시 내릴 수 있다.
git commit -m "저장할 메세지"
git push : git repository에 올라감
git push -f : 강제로 push한다.
git remote : 현재 원격저장소로 어떤것이 등록되어있는지 확인할 수 있다.
git remote -v : 원격 저장소 리스트를 불러온다.
git remote rm <원격저장소명> : 원격 저장소 삭제
git remote add <new 원격저장소명> repository주소
git commit --amend : commit 메시지 내용을 수정할 수 있다. -> a 입력(하단 --insert-- 생김) -> 내용 수정 후 esc 누르고 :wq! 엔터
git checkout --<file> : 수정된 내용을 무시한다.
-git pull : git fetch -> git merge의 작업을 한번에 처리하는 것
git branch : 현재 브랜치의 리스트가 출력된다.
git branch <브랜치명> : 해당 브랜치명의 브랜치가 생성된다.
git checkout <브랜치명> : 해당 브랜치로 포인터를 이동한다.
토픽 브랜치 생성 후 --clone으로 디렉토리 복사 -> 데이터 수정 처리 후 add, commit -> git checkout master로 변경 -> git merge <토픽 브랜치> ->git branch -d <토픽브랜치>를 통해 토픽브랜치 삭제
contributors (기여): 기능을 추가하거나 보안취약점 수정 및 오타수정, 번역, 의견제시 등 모든 활동을 포함함
contributors 활동을 하는 이유 : 구직 활동을 할 때 이력서에 활동 이력을 담을 수 있다. ,내가 작업한 로직을 다른 개발자가 사용 후 평가받을 수도 있다.
commiter : 누군가 컨트리뷰션을 하면 해당 내용을 리뷰하고 실제 프로젝트에 반영할지 결정하는 사람이다. 특정한 프로젝트를 오픈소스로 만들어서 관리하는 사람을 의미한다.
오픈소스 라이센스
MIT license : 무료, 배포가능, 소스코드 수정가능, 2차 저작물 공개 의무 없음(편하게 사용가능한 느슨한 라이센스)
Apache license : 무료, 배포가능, 소스코드 수정가능, 2차 저작물 공개 의무 없음(편하게 사용가능한 느슨한 라이센스)
GPL : 무료, 배포가능, 소스코드 수정가능, 2차 저작물 공개 의무 있음(오픈소스를 사용하여 저작물을 만들 경우 공개해야함{제약 조건})
Beerware : 만나면 그냥 술이나 사주자
Git의 장점
- 분산적인 개발 : 깃을 사용하는 전체 개발 내역을 각 개발자의 로컬 컴퓨터로 복사할 수 있다. 나중에 서로 수정된 내역을 합치기(Merge)할 수도 있으며 이 때 Git의 고유한 프로토콜을 이용한다.
- 효율적인 개발 : 깃은 변경 이력이 많더라도 변경된 내용만 처리한다는 점에서 메모리적인 효율성이 뛰어나다.
- 비선형적인 개발 : 깃은 브랜치라는 개념이 사용된다. 프로젝트의 가지치기가 가능하다. 이는 트리구조 혹은 비선형적인 구조라고 볼 수 있다.
- 변경 이력 보장 : 작업된 모든 내역들은 모두 별도의 영역에서 관리되어 안전하게 프로젝트 운영 가능
Git Project의 3가지 구성요소
- Working Directory : 작업할 파일이 있는 디렉토리.
- Staging Area : 커밋(Commit)을 수행할 파일들이 올라가는 영역
- Git Directory : Git 프로젝트의 메타 데이터와 데이터 정보가 저장되는 디렉토리. (.git 디렉토리) (지우게 된다면 정상적으로 깃 프로그램이 동작하지 않음)
통합 브랜치 : 배포가 가능한 수준의 브랜치로 일반적으로 마스터(main)브랜치를 의미한다.
토픽 브랜치 : 특정한 기능을 위해 만들어진 브랜치로 일반적으로 마스터(main)브랜치 이외의 다른 브랜치를 의미한다.
병합 수행 중 두개의 브랜치의 데이터가 다를 때 :
서로 다른 파일에 들어가서 차이점이 나오는 부분을 확인 후 최종적으로 사용할 파일로 수정 후 다시 add commit처리 이후 git merge <branch> 로 병합하여 처리한다.
해당 디렉토리 zip파일로 압축하기
git archive --format=zip <브랜치> -o <압축파일명.zip>
커밋 메시지 수정하기
git rebase -i HEAD~3(log에 최근 3개만 보여주기) <commit HashCode를 넣어주면 특정 커밋 가능>-> i눌러 insert로 바꾸고 pick부분을 Commands의 옵션을 보고 수정처리 -> esc wq! enter-> i눌러서 insert만들고 메시지 수정 후 esc wq! enter
특정 커밋 삭제하기
git rebase -i HEAD~개수 [commit HashCode] -> rebase 에디터에서 Commands 보고 drop으로 수정 후 완료