Git_기초

7213 단어 githubgitgit

Git intro


버전 관리 시스템을 사용하는 이유



버전 관리라는 것 자체가 각 버전 별로 변경된 이력들을 저장하는 작업


Git



버전 관리 시스템(Version Control System) 중 가장 강력하고 대중적인 도구 : Git
Git이란 개발자의 코드를 효율적으로 관리하기 위해서 개발된 ‘분산형 버전 관리 시스템

commit이라는 기능을 통해서 변경 사항에 대한 스냅샷이 만들어지고 이전의 기록들에 대한 추적이 가능하다면 버전 관리 뿐만 아니라 협업을 할 때도 굉장히 유용


GitHub



GitHub는 Git Repository를 관리할 수 있는 클라우드 기반 서비스

Git으로 버전을 관리하는 폴더에 대해서 GiHhub를 통해 여러 사람들이 공유하고 접근 가능


Git Repository



Fork


기존의 원격 저장소에서 원격 저장소로 가지고 오는 작업


Clone



내 원격 저장소에서 내 컴퓨터로 가져오는 작업

Push



내 컴퓨터에서 변경 작업 완료 후 commit을 통해 저장한 다음 원격 저장소로 업로드하는 과정


Pull


원격 저장소에서 변경 사항이 있을 때 내 컴퓨터롤 가져오는 과정


Git 설치 및 환경설정


Git 설치(Ubuntu)


sudo apt install git // git 설치

git --version // git 버전 확인하여 설치 상태 점검

Git 환경설정


git git config --global user.name "나의 사용자 이름"

git config --global user.email "내 이메일 주소"

나의 사용자 이름과 내 이메일 주소를 대신해 GitHub에 등록된 사용자 이름과 이메일 주소를 사용

  • --global 옵션으로 설정하면, 사용자 홈에 저장되므로 git을 설정할 때 처음에 단 한 번만 입력
    나중에 GitHub의 사용자 이름이나 이메일을 변경한다면, 이 명령어를 다시 입력
  • 만약 여러 프로젝트를 진행하고 있어서, 프로젝트마다 다른 사용자 이름과 이메일 주소를 사용하고 싶으면 --global 옵션을 빼고 명령을 실행가능

git config --global core.editor nano

Git에서 커밋 메시지를 기록할 때, 특히 merge commit 확인 메시지가 나올 때 텍스트 에디터가 기본으로 vi로 열리는데 익숙하지 않으면 nano로 변경


Git workflow(open_source)



1. Fork



2. git clone



3. git status



git status 명령어를 통해 staging area와 untracked files 목록에 어떤 것들이 있는지 확인


4. git restore



git restore [파일명] 명령어를 통해 Work space의 변경 사항을 폐기하고 다시 처음으로 clone 받아 왔던 상태로 되돌려줌


5. git add



*주의 git add .명령어는 올리지 말아야 할 파일까지 모두 add될 수 있다.

6. git commit


git commit 메세지 작성법 참조


7. git reset



git reset HEAD^ 명령어로 가장 최신의 commit 을 취소
예를 들어 최신 commit 3개 취소는 HEAD^^^ (HEAD~3도 가능)


git reset [option] [돌아가고싶은 커밋]

option 1. --soft는 commit 직전의 Staged 상태로 만듦
option 2. --mixed(default)는 commit 전의 Modified 상태로 만듦
option 3. --hard 는 commit 전의 Unmodified로 만듦 (전체 초기화)


8. git push



9. git log



10. Pull Request



Git의 세 가지 영역 및 상태



Git workflow(Cooperation)


1. git init



기존 프로젝트를 Git Repository로 변환하거나 새로운 Repository를 초기화하는 데에 사용


2. git remote add




git remote add [remote명] [Repository 주소]

3. git remote -v



4. git pull



받아오는 내용은 자동으로 병합(merge)된다.


충돌 해결하기




git status 명령어를 통해 어떤 파일이 충돌하고 있는지 확인



  • Accept Current Change를 클릭해서 내가 수정한 내용으로 파일에 반영 가능
  • Accept Incoming Change를 클릭해서 Remote Repository의 내용으로 파일에 반영 가능
  • Accept Both Changes는 변경 사항 모두를 반영


Merge commit은 자동으로 Commit 메시지가 생성된다. (물론 메시지를 수정할 수도 있다.)
git commit 명령어로 자동으로 생성된 commit 메시지를 남겨진다.
그리고 Remote Repository에 Push 한다면 다음 화면과 같이 Merge branch ‘master’ of 라는 commit 메시지가 기록된다.

좋은 웹페이지 즐겨찾기