반응형

(github)깃허브 - 깃(git) 사용법2 깃 작업 되돌리기

 

이전 포스팅에서는 깃의 시작과 버전을 만드는 방법에 대해서 설명했습니다.이번 포스팅에서는 깃 하는 작업을 되돌리는 방법에 대해서 포스팅하겠습니다.

 

수정한 파일 되돌리기 git restore <파일명>

현재 폴더 상태와 git status 상태입니다.

git_test.txt와 git_test2.txt 파일이 커밋까지 완료된 상태입니다.

 

이제 git_test.txt파일을 열고 3열에 "CCC"를 지우고 "DDD"를 입력하고 저장합니다.

CCC 값을 삭제
DDD 값을 입력 저장

 

git status를 다시 입력합니다. 파일이 수정되었고, 커밋을 위한 스테이지에 올라가 있지 않은 상태임을 알려줍니다.

또한 git restore <파일명> 명령어를 입력하면 작업폴더 안에서의 변화를 취소(복구) 한다는 안내도 출력됩니다. (git 구버전에서는 git checkout으로 나올것 입니다. 최신버전에서는 git restore 입니다)

 

git restore git_test.txt 명령어를 입력하고 git status를 입력합니다.

git_test.txt의 파일은 최종커밋한 파일로 복원이 되고, 작업트리는 깨끗한 상태입니다.

 

이제 폴더에서 git_test.txt 파일을 실행하여 원복이 됐는지 확인을 합니다.

"DDD"로 수정했던 3열이 "CCC"로 다시 원복된 것을 확인 할 수 있습니다.

 

스테이지에 올라간 파일 되돌리기 git restore --staged <파일명>

위에서는 파일의 수정 상태를 원복했습니다.이번에는 스테이지 올라간 파일을 취소하는 방법입니다.이번에도 git_test.txt  파일을 열고 3열에 "CCC"를 "DDD"로 수정 및 저장합니다.

DDD 값을 입력 저장

 

git status 명령어 입력 후, git add git_test.txt 입력 후, git status 명령어를 다시 입력해 봅니다.

첫 git status에서는 파일이 수정된 것이 출력됩니다. git add 이후에 git status에서는 커밋을 위한 준비가 됐음을 출력합니다.(스테이지에 올라간 상태)

또한 git restore --staged <파일명> 으로 스테이지에서 내려오는 방법 또한 출력합니다.

(이전 버전에서는 git reset HEAD <파일명> 이었습니다)

 

git restore --staged git_test.txt 명령어를 입력합니다. 그리고 git status 명령어를 입력해서 unstage가 된 상태를 확인합니다.

 

최신 커밋삭제하며 이전으로 되돌리기  git reset HEAD^^

이번에는 커밋까지 이뤄진 최신 커밋을 취소하는 방법입니다.

현제 폴더에 있는 git_test.txt 파일의 3열은 "DDD"인 상태이고 스테이징도, 커밋도 안된 상태입니다.

(지금 현재 최종 커밋되어있는 깃의 git_test.txt 파일 3열은 "CCC" 입니다.)

 

이제 "DDD"로 변경한 내용을 add 및 commit 해줍니다.

두명령어를 한번에 해주는 명령어인 git commit -am "메세지내용" 을 입력합니다.

그리고 git status를 입력해서 깨끗한 작업트리 상태를 확인합니다.

 

git log를 입력해서 최종버전에 HEAD가 있는것을 확인합니다.

 

이제 git reset HEAD^^ 명령어를 입력합니다.

(원래 명령어는 git reset HEAD^ 꺽쇠가 한개이지만 cmd는 꺾쇠를 이스케이프 문자로 인식하여 두개를 입력함)

커밋이 취소되고, 언스테이지 되었다는 내용이 출력됩니다.

 

git log를 입력해보면 최신 커밋 버전의 log가 사라지고 이전 버전에 HEAD가 있는것이 확인됩니다.

 

git status를 입력하면 파일만 수정된 상태고 스테이지에도 올라가지 않은 상태임을 확인 할 수 있습니다.

 

이제 위에서 설명드렸던 git restore git_test.txt 명령어를 파일 원복을 실행 시키고 git status로 작업트리의 깨끗한 상태를 확인합니다.

 

이제 폴더의 git_test.txt 파일을 열어보면 3열이 "CCC"로 원복된것을 확인할 수 있습니다.

 

커밋을 되돌리는 여러가지 방법

※ 윈도우 cmd에서는 꺽쇠를 두번 ^^ 입력해줘야 합니다

최근 n개의 커밋을 취소하는 명령어 

$ git reset HEAD~n

 

최근 커밋을 하기 전 상태로 작업 트리를 되돌리는 명령어

$ git reset --soft HEAD^

 

최근 커밋과 스테이징을 하기 전 상태로 작업 트리를 되돌리는 명령어 (옵션 없이 사용할 경우와 같음)

$ git reset --mixed HEAD^
$ git reset HEAD^

 

최근 커밋과 스테이징을, 파일 수정까지 모두 전 상태로  작업 트리를 되돌리는 명령어 (파일이 이전 커밋으로 원복되며 복구 불가능)

$ git reset --hard HEAD^

 

특정 커밋으로 돌아가기

$ git log (commit 뒤에 커밋해시값을 얻기 위한 명령어)
$ git reset --hard <되돌아가고 싶은 커밋해시값>

 

최신버전 커밋 삭제 하지 않고 이전버전으로 되돌아가기 git revert

위에서 설명한 git reset과는 다르게 git revert 명령어는 최신버전의 커밋 내용을 삭제하지 않고 이전으로 버전으로 되돌아갈 수 있습니다.

 

먼저 git_test.txt 파일의 3열을 다시 "DDD"로 수정하고 저장합니다.

DDD 값을 입력 저장

 

git commit -am "메세지내용" 명령어를 입력하여 커밋을 하고 git log로 로그를 확인합니다.

 

위 사진에서 주황글씨로 commit 뒤에 나오는 값이 커밋해시 값 입니다.

git revert <HEAD가 있는 커밋해시값> 을 명령어로 입력합니다.

(git reset은 돌아가고 싶은 커밋해시값을 적지만, git revert는 취소할 커밋해시값을 입력)

 

vim이 열리고 리버트가 되기전에 추가로 남겨둘 메세지를 입력 할 수 있습니다. (i키 누르면 입력모드로 전환)

(vim 저장하고닫기: esc -> :wq)

 

이제 git log를 입력해 봅니다. 

그러면 로그에는 최신버전에서 revert한 새로운 커밋이 생성됩니다.

기존의 최신이었던 버전(DDD로 또 수정) 커밋도 여전히 존해합니다.

이는 최신버전의 커밋을 지우는 것이 아닌, 최신버전의 커밋을 취소한 새커밋을 만든 것 입니다.

 

이제 폴더에서 git_test.txt 파일을 열어봅니다.

그러면 3열의 "DDD"가 "CCC"로 복원된 것을 확인 할 수 있습니다.

 

[github]깃허브 전체보기

 

'(github)깃허브' 카테고리의 글 목록

전산 관련 경험을 기록 하는 곳

reddb.tistory.com

 

반응형
반응형

(github)깃허브 -  깃(git) 사용법1 깃으로 버전 만들기

 

이전 포스팅에서는 깃(git)을 설치하는 방법 및 name과 email 설정에 대해 포스팅하였습니다.

이번 포스팅에서는 깃(git)의 사용법에 대해서 포스팅하겠습니다.

 

먼저 저는 C:\Users\do\git_test 폴더를 만들어주었습니다. 이 폴더에서 git을 테스트 할 것입니다.

 

git init

명령 프롬프트(cmd)로 해당 폴더에 들어가서 git init 명령어를 입력합니다.

 

윈도우 탐색기로 확인해 보면 .git 이라는 숨겨진 폴더가 생깁니다. 이 폴더에 깃이 시작된 것 입니다.

 

git status

cmd에서 git status를 입력하면 깃의 상태를 출력해줍니다.

  • On branch master: 현재 마스터 브랜치가 존재
  • No commits yet: 아직 커밋한 파일 없음
  • nothing to commit: 현재 커밋할 파일 없음

 

해당 폴더에 git_test.txt 텍스트 파일을 하나 만들어주고 1열에 AAA 내용을 입력 및 저장해줍니다.

git_test.txt "AAA" 입력

 

다시 cmd에서 git status를 입력하면 Untracked files 라는 변화된 내용이 출력됩니다.

깃에서 버전관리를 하지 않은 파일들을 Untracked files라고 합니다.

 

git add

이제 cmd창에서 git add git_test.txt 명령어를 입력하면 git_test.txt파일이 스테이지로 올라갑니다.

(스테이지는 생성 또는 수정한 파일을 올리는 곳입니다. 이곳에 올린 파일들이 후에 저장소로 커밋됩니다.)

이후 다시 git status를 입력하면 Changes to be committed 라는 변화된 내용이 출력됩니다.

git_test.txt 파일 앞에 new file이라는 변화된 내용도 출력됩니다.

이는 앞으로 git_test.txt 파일을 커밋할 준비가 되었다는 상태입니다.(스테이지에 올라간 상태)

 

git commit

이제 스테이지에 올라온 파일을 커밋해줍니다.

git commit -m "넣고 싶은 메세지" 명령어를 입력합니다. (-m 옵션은 커밋과 함께 메세지를 입력할 수 있게 해줍니다)

명령어를 입력하면 1개의 파일이 변경되었고, 파일에 1개의 내용이 추가되었다고 출력됩니다.

다시 git status를 입력하면 커밋할 것이 없고, 작업트리도 깨끗하다고 출력됩니다.

 

git log 명령어를 입력하면 커밋한 버전이을 확인 할 수 있습니다.

 

위에서 설명한 스테이지에 올리는 git add와 git commit을 동시에 하는 방법도 존재합니다.

먼저 git_test.txt 파일 2열에 "BBB"를 입력하고 저장합니다.

 

그다음 cmd에서 git status를 입력하면 아래와 같이 스테이지에 올라가지 않았으며 git_test.txt가 수정되었다는 내용이 출력됩니다.

 

cmd에서 git commit -am "넣고싶은 메세지" 명령어를 입력하면 git add와 git commit이 동시에 됩니다.(-a는 스테이지 올리는 add옵션, m은 뒤에 메세지를 넣을 수 있게 해주는 옵션)1개의 파일이 변경되었고, 2개의 내용일 추가되었고, 1개가 삭제되었다는 내용이 출력됩니다.git status를 입력하면 커밋할게 없고, 작업트리도 깨끗하다고 나옵니다.

 

git log

git log 명령어를 입력해보면 최근에 커밋한 내용이 HEAD -> master로 설정되어 있음을 확인할 수 있습니다.

commit 뒤에 나오는 값은 커밋 해시값(또는 git hash)입니다.

Author: 뒤에는 작성자의 이름과 이메일이 나옵니다.

Date: 뒤에는 버전을 만든 날짜가 나옵니다.

그 밑에는 커밋할때 -m 옵션으로 넣어준 "메세지" 내용이 출력됩니다.

 

git diff

git_test.txt 파일 3열에 "CCC"를 입력해 줍니다.

 

git status를 입력해 보면 파일이 수정되었고 스테이지로 올라가지 않았다는 내용이 출력됩니다.

 

이 상태에서 git diff를 입력하면 커밋되어 있는 최신버전의 git_test.txt 파일과 수정한 git_test.txt 파일의 차이점을 보여줍니다.

붉은색 -BBB의 의미는 BBB가 삭제되었다는 의미입니다.

녹색의 +BBB +CCC의 의미는 BBB, CCC가 추가되었다는 의미입니다.

 

여러파일 git add

폴더에 git_test2.txt파일을 만들고 "111, 222, 333, 444"를 입력해줍니다.

 

git status를 입력해서 상태를 확인합니다.

git_test.txt는 파일이 수정되었고 스테이지에 올라가지 않았다고 출력됩니다.

git_test2.txt는 파일이 Untracked 상태임을 출력합니다.(버전관리를 하지 않는 파일이라는 의미)

 

이제 2파일을 git add 하여 스테이지로 올려줍니다. 방법은 두가지가 있습니다.

1. 하나씩 추가하는 방법

$ git add git_test.txt
$ git add git_test2.txt

2. 모든파일을 add 하는방법 ( .은 모든파일을 의미)

$ git add .

그리고 git status로 상태를 확인합니다. 2개 파일 모두 커밋할 상태로 변화되어 있습니다.

 

이제 git commit -m "메세지내용" 명령어 입력을 합니다.

2개의 파일이 변경되었고, 6개의 삽입, 1개의 삭제가 있음을 출력합니다.

 

git log --stat 명령어로 상태를 확인합니다.

--stat 옵션을 주면 버전의 커밋 관련 파일 내용도 함께 출력됩니다.

 

여러 파일을 git add 할때 제외하고 싶은 파일 목록만들기

git init으로 깃을 시작한 폴더내에서 git으로 버전관리하고 싶지 않은 파일들이 있을 수 있습니다.

그런 경우 git init을 시작한 최상의 폴더에 .gitignore 파일을 만들어 목록을 입력해주면 됩니다.

git_test3.txt 파일이 없는 상태에서 .gitignore 파일을 만들어 "git_test3.txt"를 입력해주고 저장합니다.

 

git status를 입력하면 .gitignore 파일이 생성되었고 스테이지에 올려야 하는 Untracked 상태임을 출력해줍니다.

(.gitignore 파일안에 지정한 파일은 버전관리에 포함되지 않지만 .gitignore 파일은 버전관리에 포함됩니다)

 

폴더에 git_test3.txt 파일을 만들고 "가가가"를 입력합니다.

 

git status를 입력해보면 .gitignore 파일에 입력되어 있는 git_test3.txt는 검색이 되지 않는 것을 확인할 수 있습니다.

 

이제 .gitignore 파일에서 git_test3.txt 내용을 삭제하고 저장합니다.

 

git status를 다시 입력해 봅니다. git_test3.txt 파일도 Untracked 파일로 나타나는 것을 확인 할 수 있습니다.

.gitignore에는 파일명뿐 아니라 폴더, 확장자등으로도 버전관리에서 제외를 할 수 있습니다.

  • 파일명.확장자    (1개의 파일 제외)
  • 폴더명/    (해당 폴더명 폴더 제외)
  • .확장자    (해당 확장자 모두 제외)

 

최근 커밋 메세지 수정하기

git log를 입력해서 최신 버전의 커밋 메세지를 확인합니다.

 

git commit --amend 명령어를 입력하면 vim이 열리면서 최근 버전의 메세지를 수정할 수 있습니다.

(vim 사용법은 a를 누르면 뒤에 내용을 입력할 수 있습니다.)

저는 마지막에 "메세지 수정"을 추가 입력하고 vim을 저장종료 하겠습니다. (vim저장종료 명령어 esc -> :wq)

 

이후 git log를 입력하면 메세지가 수정된 것을 확인 할 수 있습니다.

 

다음 포시팅에서는 깃으로 하는 작업을 뒤로 되돌리는 명령어에 대해 포스팅하겠습니다.

그전에 불피요한 .gitignore파일과 git_test3.txt 파일은 삭제하도록 하겠습니다.

 

[github]깃허브 전체보기

 

'(github)깃허브' 카테고리의 글 목록

전산 관련 경험을 기록 하는 곳

reddb.tistory.com

 

반응형
반응형

(github)깃허브 - 윈도우에 깃(git) 설치하기

 

깃허브(github)를 사용하기 위해서는 먼저 PC에 깃(git)이 설치되어 있어야 합니다.

이번 포스팅에서는 윈도우에 깃(git)를 설치하는 방법에 대해 설명드리겠습니다.

(깃허브가 웹 저장소라면 깃은 저장소(내PC 또는 깃허브 등)에 내 소스를 버전별로 저장해주는 프로그램입니다.)

 

먼저 https://git-scm.com 사이트에 접속을 합니다.

 

Git

 

git-scm.com

 

사이트에 접속을 하면 운영체제 따라 프로그램을 다운 받을 수 있는 링크가 나타납니다. (화면 우측 하단)

[Download 버전 for Windows]를 클릭하면 페이지가 전환되며 프로그램을 자동으로 다운 받습니다.

다운이 완료되면 프로그램을 실행합니다.

 

설치 첫화면이 나타나면 넥스트를 클릭합니다.

 

설치할 폴더를 지정하고 넥스트를 클릭합니다.

 

기본적으로 6개의 컴퍼넌트가 선택되어 있습니다. 그대로 넥스트를 클릭합니다.

 

스타트 메뉴 폴더도 선택해 줍니다. 저는 기본값 그대로 Git으로 두고 넥스트를 클릭하겠습니다.

 

기본값으로 vim이 선택되어 있습니다. 그대로 넥스트를 클릭합니다.

 

새 저장소에서 이니셜 브랜치의 이름은 깃이 설정하도록 선택하고 넥스트를 클릭합니다.

 

커맨드 라인에서 어떤 방법으로 깃을 사용 할지 선택하는 화면에서는 기본값 그대로 넥스트를 클릭합니다.

 

보안 서버에 접속하기 위한 방법도 기본 값을 선택한 상태로 넥스트를 클릭합니다.

 

텍스트 파일에서 라인 끝부분을 어떻게 처리할 것인지 선택하는 화면도 기본값을 고르고 넥스트를 클릭합니다.

 

터미널 에뮬레이터 선택화면에서는 User Window's default console window를 선택합니다.

윈도우의 명령 프롬프트 창을 사용하는 선택입니다.

 

git pull 명령어의 기본 동작을 선택합니다. 기본값인 fast-forward or merge를 선택합니다.

 

자격 증명 도우미 선택화면에서 기본값을 선택하고 넥스트를 클릭합니다.

 

기타 옵션 선택에서도 기본값 그대로 넥스트를 클릭합니다.

 

실험적 지원은 체크를 하지 않은 기본값 그대로 인스톨을 클릭합니다.

 

설치가 진행됩니다.

 

설치가 완료되면 피니스클 클릭합니다.

 

검색에서 git으로 검색해서 정상 설치 되어 있는지 확인을 합니다.

 

명령프롬프트(CMD)에서도 git --version 명령을 넣어 확인합니다.

 

깃을 처음 설치하면 반드시 해줘야 하는 명령어가 있습니다.

사용할 이름과, 사용할 이메일을 global로 지정해주어야 합니다.

아래 명령어를 참조하시어 원하는 이름과 이메일을 설정합니다.

$ git config --global user.name "사용할이름"
$ git config --global user.email "사용할이메일@도메인.com"

 

[github]깃허브 전체보기

 

'(github)깃허브' 카테고리의 글 목록

전산 관련 경험을 기록 하는 곳

reddb.tistory.com

 

반응형