TEST
1. 폴더 만들기( mkdir )
2. 생성한 폴더에서(cd gittest) 깃 등록 ( git init )
3. 텍스트파일 생성 후 git이 추적하도록 등록 ( vim / git add )
// 6번에서 git 추적 등록하는 과정, 수정 후에도 일일히 add해줘야한다.
4. 텍스트 파일 수정( i / esc / :wq )
5. 프로젝트 폴더 상태 확인(status)
6. 생성, *수정한 텍스트 파일 git이 추적하도록 등록(add)
7. 사용자 등록 (최초 1회만 ) : git config --global user.name OOO / git config --global user.email OOO@xxx.xxx
8. 커밋( 버전 등록 ) (git commit / i / esc / :wq )
9. 로그 확인 ( git log )
10. 파일 수정 후 version2로 등록하기 ( git add f1.txt / commit )
(add 시에 CRLF 관련 에러가 뜬다면 git config --glovbal(전체 프로젝트에 적용하는 경우) core.autocrlf true 입력 후
다시 add )
11. 로그확인
*새로운 파일의 버전관리 맡길때, 이미 버전관리가 되고있는 파일 수정하고 버전 생성할 때도 add
add먼저 하고 커밋. add하고나면 변경사항이 commit 목록에 올라가고, 그 후에 commit
- git 설치
- git bash : 윈도우를 리눅스나 유닉스 계열의 컴퓨터 명령어를 통해 제어할 수 있게 해주는 프로그램
git bash 실행
1 2 3 | user@DESKTOP-7HBP03L MINGW64 ~ $ pwd /c/Users/user |
- $pwd : 현재 위치 알려줌
- 1. 프로젝트 폴더 만들기
원하는 경로로 이동한 후 프로젝트 파일을 만듭시다.
1 | mkdir gittest |
프로젝트 디렉토리로 들어갑니다.
1 | cd gittest |
현재 디렉토리를 git의 (버전) 저장소로 만듭니다.
1 | git init |
* Git Bash 복사 / 붙여넣기 단축키
복사 : Ctrl + Insert
붙여넣기 : Shift + Insert
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | user@DESKTOP-7HBP03L MINGW64 ~ $ pwd /c/Users/user user@DESKTOP-7HBP03L MINGW64 ~ $ cd E:\ << 이렇게 입력하면 E:로 가지 않고 뒤에 나올 경로 입력을 기다림. 역슬래쉬 빼주기 user@DESKTOP-7HBP03L MINGW64 ~ $ mkdir gittest user@DESKTOP-7HBP03L MINGW64 ~ $ cd gittest user@DESKTOP-7HBP03L MINGW64 ~/gittest $ ls -al total 16 drwxr-xr-x 1 user 197121 0 8월 8 11:49 ./ drwxr-xr-x 1 user 197121 0 8월 8 11:49 ../ user@DESKTOP |
//git 도움말 보기
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 | user@DESKTOP-7HBP03L MINGW64 ~/gittest $ git usage: git [--version] [--help] [-C <path>] [-c <name>=<value>] [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path] [-p | --paginate | -P | --no-pager] [--no-replace-objects] [--bare] [--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>] <command> [<args>] These are common Git commands used in various situations: start a working area (see also: git help tutorial) clone Clone a repository into a new directory init Create an empty Git repository or reinitialize an existing one work on the current change (see also: git help everyday) add Add file contents to the index mv Move or rename a file, a directory, or a symlink reset Reset current HEAD to the specified state rm Remove files from the working tree and from the index examine the history and state (see also: git help revisions) bisect Use binary search to find the commit that introduced a bug grep Print lines matching a pattern log Show commit logs show Show various types of objects status Show the working tree status grow, mark and tweak your common history branch List, create, or delete branches checkout Switch branches or restore working tree files commit Record changes to the repository diff Show changes between commits, commit and working tree, etc merge Join two or more development histories together rebase Reapply commits on top of another base tip tag Create, list, delete or verify a tag object signed with GPG collaborate (see also: git help workflows) fetch Download objects and refs from another repository pull Fetch from and integrate with another repository or a local branch push Update remote refs along with associated objects 'git help -a' and 'git help -g' list available subcommands and some concept guides. See 'git help <command>' or 'git help <concept>' to read about a specific subcommand or concept. |
1 2 3 4 5 6 7 8 | $ git init Initialized empty Git repository in C:/Users/user/gittest/.git/ $ ls -al total 20 drwxr-xr-x 1 user 197121 0 8월 8 11:57 ./ drwxr-xr-x 1 user 197121 0 8월 8 11:49 ../ drwxr-xr-x 1 user 197121 0 8월 8 11:57 .git/ | cs |
- 2. git이 관리할 대상으로 파일 등록
파일을 생성합니다. // vim이라는 프로그램(editor 프로그램)으로 f1.txt를 수정하기
1 | vim f1.txt |
" i " 입력하면 insert 모드로 >> 입력 >> 입력 완료 후 [ esc ] : 다시 입력할 수 없는 상태로
>> 다시 i 누르면 입력모드 >> esc로 입력 종료한 후 >> :wq ( : write quit) 입력
>> vim 대신 cat f1.txt로 파일 내용 읽기 가능
프로젝트 폴더의 상태를 확인합니다.
1 | git status |
Untracked files(git이 관리하고 있지 않은 파일) 목록을 보여줌 // 방금 생성한 f1.txt가 뜸
git이 파일을 추적(관리)하도록 명령합니다.
1 | git add f1.txt |
-3. 버전 만들기
사용자 등록
1 2 | git config --global user.name "자신의 닉네임" git config --global user.email "자신의 이메일" |
파일 수정 후 git add / commit ( i / esc / :wq ) / git log
add는 stage area로 올려주고, commit은 stage area에 있는 파일들을 repository에 업로드함
1 2 3 4 5 6 7 8 9 10 11 12 13 | $ git log commit 426cd69f7e58e2c229f01b6b636a0211e08e77b7 (HEAD -> master) Author: abn <abn_abn@naver.com> Date: Thu Aug 8 14:35:17 2019 +0900 version2 commit b8a961051e22f7eb6c545ea470e6d33a0936263b Author: abn <abn_abn@naver.com> Date: Thu Aug 8 14:12:45 2019 +0900 version1 |
[ERROR]
fatal: not a git repository (or any of the parent directories): .git
>> 프로젝트 폴더 생성하고 git init으로 등록을 안해줘서 뜨는 에러
[ERROR]
warning: LF will be replaced by CRLF in f1.txt.
The file will have its original line endings in your working directory
: 이는 맥 또는 리눅스를 쓰는 개발자와 윈도우 쓰는 개발자가 Git으로 협업할 때 발생하는 Whitespace 에러다.
유닉스 시스템에서는 한 줄의 끝이 LF(Line Feed)로 이루어지는 반면,
윈도우에서는 줄 하나가 CR(Carriage Return)와 LF(Line Feed), 즉 CRLF로 이루어지기 때문이다.
따라서 어느 한 쪽을 선택할지 Git에게 혼란이 온 것이다.
Git은 똑똑해서 이를 자동 변환해주는 core.autocrlf
라는 기능을 가지고 있는데, 이 기능을 켜주기만 하면 된다.
해결 방법 (윈도우 사용자의 경우)
git config --global core.autocrlf true
-4. 변경사항 확인 : git log
git log에 옵션 주기
log -p // 각각의 커밋과 커밋 사이 소스 상의 차이를 알려줌
--- 뒤의 내용은 이전 버전, +++뒤의; 내용은 이후 버전에 대한 설명
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 | user@DESKTOP-7HBP03L MINGW64 /e/gittest (master) $ git log -p commit 426cd69f7e58e2c229f01b6b636a0211e08e77b7 (HEAD -> master) Author: abn <abn_abn@naver.com> Date: Thu Aug 8 14:35:17 2019 +0900 version2 diff --git a/f1.txt b/f1.txt index 4567ca4..de9f46b 100644 --- a/f1.txt +++ b/f1.txt @@ -1 +1 @@ -hello git~ +hello git~ version2 commit b8a961051e22f7eb6c545ea470e6d33a0936263b //커밋 고유 주소, 커밋 Author: abn <abn_abn@naver.com> Date: Thu Aug 8 14:12:45 2019 +0900 version1 diff --git a/f1.txt b/f1.txt new file mode 100644 index 0000000..4567ca4 |
git log b8a961051e22f7eb6c545ea470e6d33a0936263b (커밋 고유 아이디) // 해당 아이디와 그 이전 버전 로그만 출력
특정 커밋과 또다른 특정 커밋 사이의 차이점을 알고싶다면
git diff b8a961051e22f7eb6c545ea470e6d33a0936263b..426cd69f7e58e2c229f01b6b636a0211e08e77b7
-5. 과거 버전으로 돌아가기 / 커밋 취소
방법 두 가지 : reset VS revert //resert는 나중에
경계를 주의할것!
버전 5와 4를 지우고 버전 3으로 돌아갈 때
git reset [ 버전3의 커밋아이디 ] --hard //hard에 대한 자세한 내용은 나중에 설명
reset으로 이전버전으로 돌려도 복구는 가능하다.
// 원격 저장소를 사용할 때 (여럿이 함께 작업할 때)는 절대 reset을 사용하면 안된다.
'GitHub' 카테고리의 다른 글
GitHub 사용법 (0) | 2019.08.08 |
---|---|
Git branch 생성 // 정보확인, 병합은 이후에 추가 (0) | 2019.08.08 |
GitHub 프로젝트 히스토리 보기 (0) | 2019.07.23 |
STS와 Github 연동 - master brash가 없는 경우 (0) | 2019.07.22 |
GitHub 시작하기 (0) | 2019.05.26 |