GIT2 - CLI 버전관리편

강유리·2023년 4월 9일
0

Git

목록 보기
3/7

1. 버전만들기

CLI : 명령어를 이용해 깃을 사용하기

hello-git-cli 디렉토리 만들기

git init . 명령어 : 현재 디렉토리를 깃에게 버전관리를 하도록 시키는 것

.git 이라는 것이 생성됨

그 안에는 여러 파일이 있는데, 이 안에 여러 버전들이 저장됨

따라서 .git은 절대 지우면 안되는 파일!

버전 만들기

변경사항을 버전으로 만들어 관리하기

repository - 버전이 저장되는 곳 (.git 파일)

working tree - 버전이 되기 전 단계

staging area - 특정 파일만 버전으로 만들고 싶을 때 staging area에 해당 파일만 올려두면 될 수 있다. → 우리가 수정하려는 파일들


파일을 만들고 git status 명령어를 사용하여 상태를 확인 시

No commits yet 이라고 뜨면 아직 버전이 없는 것을 의미함

수정사항을 staging area에 올리는 명령 : git add

버전될 목록들이 나타남

버전을 만들라는 명령어 : git commit

해당 명령어를 사용하면 수정할 에디터가 나타남

에디터 사용 없이 명령어로 수정하는 단축어 : git commit -m “Message 1”

이제 staginf area에 있던 hello1.txt 파일이 repository로 이동하게 됨

다시 상태를 확인 시

명령어 : git status

처리할 파일이 없다고 뜸 (버전으로 만들 것이 없다)

버전이 잘 만들어졌는지 확인하는 명령어 : git log

버전 만들기 정리본

  1. mkdir을 통해 디렉토리 만들기
  2. cd 를 통해 디렉토리로 이동
  3. git init을 통해 버전관리를 하라고 시키기 → .git 생성됨
  4. nano를 통해 디렉토리 안에 파일 만들기
  5. cat으로 파일 정보 화면에 나타내기
  6. git status로 상태 확인하기 → commits 되지 않았다고 뜰 것임
  7. git add 파일명 으로 staging area 에 올리기
  8. git commit -m “버전1” 로 버전 업데이트 하기
  9. git status와 git log로 확인하기

4-9 반복


2. 여러 개의 파일을 버전으로 만들기

hello1.txt 수정 후

hello2.txt 파일을 새로 만든 상황

hello1 파일은 이전에 깃에 올려둔 기억(관리 중에)이 있음

hello2 파일은 기억에 없는 파일이므로 없는 파일로 생각하고 있는다. → 백업, 협업 불가

깃은 파일을 자동으로 관리하지 않는다.

hello1, 2 파일 모두를 staging area에 올리기 위해서는 무조건 git add 파일 명으로 두 개의 파일 모두 올리기.

각각의 커밋(버전) 마다 어떤 파일이 연관되어 있는지는 알 수 없다.

→ 명령어 git log —state 사용하여 알 수 있음 (이런 것은 구글 검색으로 알아내자)


3. 버전 간 차이 비교

명령어 git diff 를 통해 버전 간 차이를 알 수 있다.

  1. hello1.txt 파일에서 기존에 123 이 있었는데, four을 추가함

    1. 에서 3을 지움

명령어 : git log -p

log 에서 path를 더 자세히 알려줌


시점 돌리기

log에서 **(HEAD → master) 는 HEAD 가 가장 최근(master)을 가리키고 있다는 것이다.**

현재는 Message 3의 버전인데, Meaasge2의 버전으로 돌리고 싶으면

b1e~로 시작하는 로그에서 b455~로 시작하는 로그로 HEAD를 옮기면 된다.

git log로 들어가 돌아가고자 하는 버전의 로그를 복사하고

명령어 git checkout 해당로그주소 를 사용하면 돌아갈 수 있다.

Message 3 버전으로 업데이트하며 생성했던 hello2.txt 파일은 사라진 것을 볼 수 있다. (이전 버전으로 옮겨진 것임)

HEAD가 옮겨진 것을 볼 수 있다.

다시 가장 최근의 버전으로 돌아가고자 할 때

명령어 git checkout master 를 사용하면 된다.


명령어 사용 tip

git add 파일명

명령어를 통해 파일을 add 했었는데, 명령어 git add .

을 사용하면 현재 디렉토리 아래에 있는 모든 파일들을 한 번에 add 한다는 뜻이다.

디렉토리를 지정하고 해당 디렉토리 아래에 있는 모든 파일을 add 하고 싶을 때에는

명령어 git add 디렉토리명 을 사용한다.

여러 줄의 commit 메세지를 작성하고 싶다면

git commit -m “커밋메세지” 명령어를 사용하는 것이 아닌,

git commit 명령어를 통해 nano 파일로 들어가서 여러 줄의 커밋메세지를 쓰고 저장할 수 있다.


버전 삭제하기

Message 3 을 삭제하고 Message 2 로 가고 싶으면

git reset 메세지2의 로그

명령어를 사용한다.

Message 2 의 로그 로 리셋하겠다 라는 말

리셋의 종류

hard, soft, 등등이 있다. hard는 강력하게 모두 지운다는 것

다른 사람과 공유된 것은 지우면 안 됨 (협업관점)


Revert

revert는 삭제와 보존을 할 수 있음.

버전 R3 내용

버전 R4의 내용

버전 4인 R4에서 버전 3인 R3 로 가고 싶을 떄, Revert 를 사용

→ reset 명령어 사용 시에는 가고자하는 버전(R3)의 아이디를 사용했지만, Revert를 사용 시에는 R4의 커밋 아이디가 필요하다.

R4의 아이디를 복사해서 명령어 git revert 를 통해 R3 버전으로 돌아갔다.

revert 시 나노 에디터로 들어가고 나노 에디터에서 어떤 것이 revert 되었는지 자동으로 써줌

추가로 우리가 왜 해당 커밋을 revert 했는지 쓸 수 있다

참고 자료 - 버전 관리 시스템 Git

profile
Android Developer

0개의 댓글