Git Command
By Bys on April 21, 2021
Git Config
Windows의 경우 cmd창을 열고 아래의 명령어를 실행한다. git을 설치했지만 명령어가 안되는 경우 환경변수 설정을 확인한다.
Git Config 설정
git 설치 후 환경 설정, commit 시 해당 이력이 남는다.
git config --global user.name "John Doe"
git config --global user.email johndoe@example.com
User ID와 Password Credential 저장을 위해서는 아래와 같이 credential store 설정을 한다.
git config credential.helper store
Git Config 조회
설정이 완료 되면 아래 명령어로 환경변수 적용을 확인 할 수 있다.
git config --list
user.name=John Doe
user.email=johndoe@example.com
color.status=auto
color.branch=auto
color.interactive=auto
color.diff=auto
...
Git Clone
git clone
git clone https://github.com/USERNAME/git-url.git
git을 시작하며 git 레파지토리의 프로젝트를 복사해오거나 로컬의 프로젝트를 git레파지토리로 업로드 할 때 사용한다.
github에서 특정 project1을 나의 로컬로 복사해오고 싶다면 아래와 같이 명령을 수행한다.
cd D:\dev\Workspace\project1
git clone https://github.com/USERNAME/project1.git
git init
나의 로컬 project1을 github로 push하고 싶다면 github에서 레파지토리를 만들고 아래의 명령을 수행한다.
cd D:\dev\Workspace\project1
git init
git add --all
git commit -m "Initial Commit"
git remote add origin https://github.com/USERNAME/project1.git
git push -ur origin master
Git Pull
pull의 명령어는 원격저장소의 변경된 데이터를 로컬에 반영할 수 있다.
git pull
로컬데이터와 충돌이 없을 경우 변경된 데이터를 로컬에 반영할 때 (Fast-Foward) 각 Branch에 맞게 아래와 같이 사용 할 수 있다.
git pull origin master
git pull origin develop
Git tag
git tag
git checkout tags/v0.27.3
git checkout tags/tag -b branch
일반적으로 변경된 데이터를 로컬에 반영하려고 git pull을 사용하였으나 로컬 데이터에도 변경이 발생하여 충돌이 발생한 경우는 충돌 된 부분을 수작업으로 반영하고 merge를 해주어야 한다.
다만, 원격저장소의 데이터를 기준으로 로컬 데이터를 강제로 덮어쓰고 싶다면 아래의 명령을 수행 하면 된다.
git pull (overwrite force)
git fetch --all
git reset --hard origin/master
git pull origin master
이렇게 명령을 수행하게 되면 원격저장소(origin)의 master를 기준으로 로컬데이터를 엎어쓰게 된다.
Git Cherry-Pick
Cherry pick 을 사용하면 원하는 커밋이력만 가지고 올 수 있다.
git cherry-pick
# checkout develop
git checkout develop
# log
git log
## Output ##
commit 789abc
Author: Bys <skwltg90@naver.com>
Date: Wed Mar 24 08:24:37 2022 +0900
commit 456def
Author: Bys <skwltg90@naver.com>
Date: Wed Mar 23 08:24:37 2022 +0900
Update complete2
commit 123abc
Author: Bys <skwltg90@naver.com>
Date: Tue Mar 22 08:29:41 2022 +0900
update complete1
# checkout master
git checkout master
# cherry-pick
git cherry-pick 456def
git
command
]