본문 바로가기
Git

[Git & GitHub] 시작, 용도, 사용법 및 활용 요약

by WARDONCODE 2021. 11. 30.

시작

 2021.11.30~2021.12.04

 

1.깃 허브로 할 수 있는 것

 - 버전 관리 - 파일을 수정할때마다 그 버전 및 시간을 기록하여 재활용 가능

 - 백업 - 깃의 원격 저장소에 파일을 백업 가능

 - 협업하기 - 원격 저장소를 통해 파일을 주고 받으며 팀원과 함께 협업이 가능

 - 배워야하는 순서 - 버전 관리 > 백업 > 협업

 

3.깃 프로그램

 - 복잡한 깃 프로그램을 보다 편리하게 사용할 수 있게 해주는 프로그램.

 - 소스 트리 추천 ( http://www.sourcetreeapp.com )

 

4.깃 시작하기

 - Git 사이트로 가서 먼저 깃을 설치 (https://git-scm.com/downloads) - 깃배쉬가 설치됨

  > 깃은 '리눅스' 기반이기 떄문에 깃 배쉬(Git Bash)를 설치하여야 함 (윈도우의 경우)

 - 깃 설치 후 환경 설정하기 - git bash에 입력 (리눅스 기반 명령어)

  ⓐ git config --global user.name "설정할닉네임"  /* --global 은 컴퓨터내 모든 저장소에서 적용*/

  ⓑ git config --global user.email "설정할 이메일" 

 - 깃 배쉬에서 사용할 수 있는 명령어 모음(리눅스)

 ⓐ pwd - 현재 위치 경로 표시

 ⓑ ls -현재 디렉터리에 어떤 파일, 디렉터리가 있는 지 확인

     /* ls 에 -la를 붙이면 상세정보(l) 및 숨김폴더(a) 표기, 정렬순서 거꾸로(r), 작성시간 순(t), -는 옵션같은 개념 */ 

 ⓒ cd .. - 현재보다 상위 디렉터리로 이동, cd A - 현재 디렉터리의 A 라는 폴더로 이동, cd ~ - 홈 디렉터리로 이동

    /* ~ - 홈 디렉터리 (현재 접속한 사용자), ./ - 사용자가 작업 중인 디렉토리, ../ - 현재 디렉터리의 상위 디렉터리*/

 ⓓ mkdir A- 현재 디렉토리에 A 폴더(디렉토리) 생성

  rm A - 현재 디렉터리의 A 폴더(디렉터리) /* 만약 -r 이라는 옵션을 붙이면 하위 디렉터리까지 모두 삭제*/

 ⓕ vim A.TXT - 현재 디렉터리에 A.txt 파일을 만들거나 존재한다면 불러옵니다. /*ex모드에서 :wq 작성시 저장종료*/

 ⓖ clear - 터미널 클리어 / exit - 터미널 종료

 

5.깃 저장소 만들기

 1) cd 명령어를 사용하여 원하는 디렉토리로 이동 후 mkdir를 사용해 폴더 생성후 cd 명령어로 디렉터리로 이동

 2) git init 을 통해 현재 디렉터리를 깃 저장소를 구축합니다.(이때 하위 디렉터리더라도 깃 이니시가 가능합니다.)

   /* 상위 디렉터리가 존재하더라도 하위 디렉터리의 스테이터스는 볼 수 있지만 파일 하나 하나 직접 볼 수 는 없음 */

 3) ls -la 를 통해 .git 폴더가 만들어졌는지 확인합니다.

 

6. 깃 버전 관리

 - git status - 현재 디렉터리의 파일 상황(작업 트리 <-> 스테이지)을 파악 가능

 - git log - 커밋한 내역에 대해 확인 가능. 커밋 해쉬 혹은 깃 해쉬 확인 가능 

  /* git log --stat 를 입력하면 커밋에 관련된 파일까지 확인 가능함 */

  /* git log --oneline 한줄로 커밋 현황을 간략하게 파악할 수 있습니다. */

 - git add 파일명. 확장자 - 파일을 작업 트리에서 스테이지로 이동시킵니다.(=스테이징)

  /* git add * 모든 파일을 전부 스테이징 시킵니다. */

 - git commit -m "메시지" - 메시지를 남기며 저장소(리포지토리)로 파일 커밋

 /* git commit -am "메시지" 라고 입력시 git add 하지 않고도 수정한 파일을 add 및 commit 동시에 할 수있음*/

 /* git commit --amend 입력시 방금 커밋한 메시지 수정

 - git diff - 작업 트리와 스테이지 간의 차이를 확인할 수 있습니다. add한 파일과 현 디렉터리 파일 간의 차이 확인

 - git restore A.txt - A.txt 파일의 작업 트리(워킹 다이렉터리)에서의 수정 사항을 되돌립니다.

  /* git checkout -- A.txt 도 동일하게 작동 */

 - git reset HEAD A.txt - A.txt 파일을 스테이지에서 작업 트리로 내립니다.

  /* git restore --staged A.txt 도 동일하게 작동 */

 - git reset HEAD^  - 가장 최근에 커밋된 파일이 전부 작업트리로 내려옵니다 . 

 - git reset --hard 커밋 해쉬 - 해당 커밋 해쉬의 커밋으로 이전에 있던 모든 커밋을 삭제하고 돌아갑니다.

 - git revert R3 커밋 해쉬 - R3 이전 가장 최근 커밋 버전을 복사해 현재 커밋 버전으로 갱신시킵니다 

 

 ※ 전체 상황

 - 작업 트리(워킹 디렉터리-언트랙드 파일, 언모디파이드, 모디파이드파일, 체인지드 낫 스테이지드 폴 커밋)----------

      ▼ git add 파일명.확장자     ▲ git reset HEAD 파일명.확장자    ▼ git commit -am "m"▲

 - 스테이지(.git 디렉터리-체인지드 투 비 커밋 파일)-------------------▼-----------------------------▲--------------------

      ▼ git commit -m "메시지"                                                ▼                                     ▲ git reset HEAD^

 - 저장소(리포지토리) (.git 디렉터리) --------------------------------------------------------------------------------------

 

7.브랜치 = 가지

 - git branch - 현재 브랜치 종류를 확인, git log 를 통해 현재 브랜치의 구조를 확인할 수 있다.

  /* git branch A -  A 라는 이름을 가진 브랜치를 형성합니다. */

 - git checkout A - A라는 브랜치로 이동합니다.

 - git log --oneline --branches --graph - 한줄로 간략하게 브랜치들을 그래프로 볼 수 있도록합니다.

 - git log A..B - A에는 없고 B에만 존재하는 커밋(안의 파일)을 보여줍니다.

 

8.브랜치 병합하기

 - (마스터 브랜치-어디든 상관없음) 에서 git merge A - A 브랜치를 마스터 브랜치로 가져와서 병합합니다.

 /* git merge A --no--edit  -  병합할때 추가 메시지를 표기하지 않음  */

 - git init A  - A라는 다이렉트를 만들며 동시에 이닛 합니다.

 

9.브랜치 삭제하기

 - git branch -d A - A라는 브랜치를 삭제합니다. 다만 git log 에는 남아있으며 A라는 브랜치를 다시만들면 생깁니다.

 

10. get reset을 이용하면 지금 HEAD인 브랜치를 리셋으로 지정한 커밋을 가르키게 만들수 있습니다.

 

11. git stash 를 사용하여 changed not staged for commit 에 해당하는 파일을 숨겨둘 수 있습니다. (수정중인 파일 되돌리기 &감추기)  git stash list 를 입력하면 스택목록화인. git stash pop를 입력하면 가장 최근 스택부터 하나씩 불러옵니다. (스태쉬 스텍)

 /* git stash drop - stash 목록에서 가장 최근의 것을 불러옴. */

 /* git stash appply - stash 목록에서 가장 최근의 것을 불러오고 스택에서 사리지지 않음*/

 

 

 

프론트 엔드 공부 후에 협업 및 소통 공부 예정 

'Git' 카테고리의 다른 글

[Git & GitHub] 자주 사용하는 명령어 모음  (1) 2021.11.27

댓글