- No commits yet : 아직 커밋한 적이 없다.
- Untracked files : 추적하지 않는(untracked) 파일: Git의 관리에 들어간 적 없는 파일
[하나의 파일을 버전에 담기]
git add tigers.yaml 명령어를 입력 후 실행하면(git add 파일명.확장자)
tigers.yaml 파일의 색깔과 모양이 달라진 것을 볼 수 있다.
이 상태로 git status 명령어를 실행하면 Untracked files에서 tigers.yaml 파일이 Changes to be committed라는 메시지가 보이면서 new file로 넘어온 것을 확인할 수 있다.
[모든 파일을 하나의 버전에 담기]
git add . 명령어로 디렉토리에 있는 모든 파일을 버전에 담을 준비를 해준다.
[버전을 커밋하기]
git commit 명령어를 실행시키면 Vi 모드로 진입이 된다.
키보드를 누르면 입력이 안되기 때문에 아래 간단한 명령어를 통해서 입력모드로 진입하여 작업을 해보자
입력 시작 | i | 명령어 입력 모드에서 텍스트 입력 모드로 전환 |
입력 종료 | ESC | 텍스트 입력 모드에서 명령어 입력 모드로 전환 |
저장 없이 종료 | :q | |
저장 없이 강제 종료 | :q! | 입력한 것이 있을 때 사용 |
저장하고 종료 | :wq | 입력한 것이 있을 때 사용 |
위로 스크롤 | k | git log등에서 내역이 길 때 사용 |
아래로 스크롤 | j | git log등에서 내역이 길 때 사용 |
i를 입력 후 FIRST COMMIT 입력 ESC 누른 뒤 :wq를 하면 다음과 같이 메시지와 색상이 바뀌게 되고
좌측의 파일들의 상태도 바뀌게 된다.
이 상태에서 git status 명령어를 실행하면 아무것도 나오지 않는다. 커밋 작업을 통해서 파일들을 버전에 묻었기 때문이다.
git log 명령어를 입력하면 커밋의 고유번호와 user의 이름과 이메일 날짜, 커밋 메시지를 확인할 수 있다.
사실 위의 작업처럼 어렵게 하지 않고 git commit -m "FIRST COMMIT" 명령어로 한 번에 커밋 작업을 끝낼 수 있다.
[변경사항이 있는 파일을 버전에 묻기]
본인은 변경사항을 만들기 위해 lions 파일을 삭제하고 tigers 파일의 내용을 수정하고 leopards.yaml 파일을 추가하였다.
좌측의 탐색기에서는 삭제한 파일은 보이지 않고 변경한 파일을 파란색의 M 모양을, 추가한 파일은 초록색의 U 모양을 가지고 있다.
git status 명령어로 상태 확인을 해보니 다음과 같이 나온다.
변경할 사항에 대해서 더 자세한 내용을 확인하려면 git diff 명령어로 확인할 수 있다.
변경사항에 대해서 버전에 담기 위해 git add . 명령어로 모든 파일을 버전에 담고
git status로 확인을 해보면 버전에 담기 위한 준비가 되어있는 것을 확인할 수 있다.
git commit -m "Replace Lions with Leopards" 명령어로 커밋을 한 후 git log 명령어로 확인을 해보자
GUI인 소스트리에서도 확인해보면 새로운 버전이 추가된 것을 확인할 수 있다.
add와 commit을 한꺼번에 실행할 수도 있는데 단 조건이 있다.
새로 추가된(untracked) 파일이 없을 때 한정하여 가능하다.
명령어는 git commit -ad "(메시지)" 이다.
[번외) 소스트리에서 git 확인하기]
소스트리 설치 후 create 클릭
git으로 관리할 디렉토리가 있는 폴더 탐색하여 폴더 선택 후 생성하면 소스트리에서도 확인할 수 있다.
소스트리에서 보여지는 하나의 커밋들이 버전이며 이 버전을 통해 과거 내역으로 돌아갈 수 있다.
[git에서 과거로 돌아가는 2가지 방법]
reset : 원하는 시점으로 돌아간 뒤 이후 내역들을 지우는 것
명령어 사용법 : git reset --hard 커밋해쉬코드
revert : 되돌리기 원하는 시점의 커밋을 거꾸로 실행하는 것
명령어 사용법 : git revert 커밋해쉬코드
* git을 통해 코드를 공유하고 협업하는데 한 번 공유한 코드를 reset 해버리면 협업시 문제가 발생하기 때문에(reset한 코드를 기반으로 작업한 것과 심각한 충돌 발생) 한 번 공유가 된 커밋들은 revert를 이용해서 되돌려야 한다.
revert를 했을 때 과거의 내역과 충돌이 나는 경우 아래와 같은 reverting(리버트가 진행중) 메시지가 뜬다.
이것은 컴퓨터가 해결하지 못하기 때문에 직접 명령어로 처리를 해주어야 한다.
본인 같은 경우에 발생한 이유는 하나의 파일을 과거에 생성하고 그 이후에 수정을 했다.
생성을 했던 시점으로 revert를 하니 아래와 같이 발생한 것
hint에서 보여지는 것처럼 처리를 하면 되는데 본인은 rm 명령어를 실행 후 continue를 할 것이다.
* rm 명령어는 삭제하는 것
현재 소스트리에 revert가 2개가 있다.
revert를 계속하면 내역이 계속 남아있기 때문에 지저분해보일 수 있다..
본인은 Replace Cheetas with Panthers 버전으로 돌아가고 이후 내역은 삭제하도록 하겠다.
git reset --hard 커밋해쉬코드 명령어를 실행하여 아래와 같은 상태로 변경 되었음을 확인할 수 있다.
[커밋해버리지 않고 revert하기]
revert 할 내역이 여러 개가 있다면 커밋을 하지 않고 변경 내역을 다 처리한 뒤 커밋할 수도 있다.
git revert --no-commit (되돌릴 커밋 해시)
- 원하는 다른 작업을 추가한 다음 함께 커밋
- 취소하려면 git reset --hard 명령어 사용
'Git,GitHub' 카테고리의 다른 글
[Git] 기존 Project에 버전 관리에 포함되어 있는 파일 명령어로 삭제 (0) | 2022.07.18 |
---|---|
[GitHub] GitHub_#2 (0) | 2022.06.12 |
[GitHub] GitHub_#1 (0) | 2022.06.07 |
[Git] Git_#3 (0) | 2022.06.07 |
[Git] Git_#1 (0) | 2022.06.07 |