loading

개발 도구 및 환경/Git

내가 쓰려고 포스팅하는 git 명령어 총 정리! 시작과 끝 알아보기

펌킨황 2023. 6. 16. 14:05
반응형

깃이란 무엇이며, 깃(Git) 명령어를 총 정리 해보자


안녕하세요. 오늘은 Git이란 무엇인지, Git의 구조, 그리고 또 가장 중요한 Git의 명령어를 알아보도록 하겠습니다.


Git이란?


Git은 분산 버전 관리 시스템(DVCS)로 소스 코드의 변경 사항을 추적하고 관리하는 도구입니다.

Git은 리눅스(Linux) 커널 개발에 사용되는 SCM(Source Code Management) 도구로 개발되었으며, 현재는 다양한 프로젝트에서 사용되고 있죠.

무엇보다 GIt의 가장 큰 특징은 분산 버전 관리 시스템이라는 점인데요, 이는 중앙 서버가 없이 로컬 저장소 원격 저장소가 모두 존재하여, 여러 개발자들이 동시에 작업을 할 수 있고, 변경 사항을 쉽게 병합할 수 있다는 것을 의미합니다.

따라서 대규모 프로젝트에서 Git의 활용은 상당히 유용하게 쓸 수 있겠죠?

또한 Git은 빠른 속도와 유연성을 제공합니다. Git은 파일의 변경사항을 추적하는 데 필요한 메타데이터만 저장하기 때문에, 다른 버전 관리 시스템보다 빠른 속도를 제공합니다. 또한 Git은 작업 흐름에 맞게 브랜치를 생성하고, 브랜치 간의 병합이 쉬워 유연성을 제공합니다.

Git은 다양한 기능을 제공하여 개발자들이 효율적으로 작업할 수 있도록 도와줍니다. Git은 커밋(commit)브랜치(branch)병합(merge)리베이스(rebase) 등의 기능을 제공합니다. 커밋은 변경 사항을 로컬 저장소에 저장하는 것이며, 브랜치는 작업을 분리하여 병합을 용이하게 하는 것입니다. 병합은 브랜치 간의 변경 사항을 병합하는 것이며, 리베이스는 기존 브랜치를 변경하거나, 브랜치를 합치는 것입니다.

또한 Git은 다양한 호스팅 서비스와 연동하여 사용할 수 있습니다. GitHubGitLabBitbucket 등의 호스팅 서비스에서는 Git 저장소를 제공하며, 이를 이용하여 협업 및 프로젝트 관리를 할 수 있습니다. 또한 Git은 다양한 개발 도구와 연동하여 사용할 수 있습니다. 예를 들어, Visual Studio Code, IntelliJ IDEA, Eclipse 등의 IDE에서 Git을 사용할 수 있습니다.

Git은 다양한 운영체제에서 사용할 수 있습니다. Windows, macOS, Linux 등의 운영체제에서 모두 사용할 수 있으며, Git Bash와 같은 터미널 환경에서도 사용할 수 있습니다.

Git은 오픈 소스 프로젝트로 개발되어 있으며, 무료로 사용할 수 있습니다. 따라서 개발자들은 Git을 이용하여 프로젝트를 관리하고 협업할 수 있으며, 이를 통해 생산성을 높일 수 있었죠.

 


Git 명령어(원격 저장소)


git push

`git push` 명령어는 로컬 저장소에서 변경된 내용을 원격 저장소로 전송합니다. 이 명령어는 다음과 같은 형식으로 사용됩니다.

git push [remote] [branch]

* 여기서 `[remote]`는 원격 저장소의 이름이며,
* `[branch]`는 전송할 브랜치의 이름입니다.
* 예를 들어, `origin`이라는 원격 저장소에
* `master` 브랜치를 전송하려면 다음과 같이 입력합니다.

git push origin master

* 이 명령어를 실행하면 로컬 저장소에서 변경된 내용이
* `origin` 원격 저장소의 `master` 브랜치로 전송됩니다.

 

git pull

`git pull` 명령어는 원격 저장소에서 변경된 내용을 로컬 저장소로 가져옵니다. 이 명령어는 다음과 같은 형식으로 사용됩니다.

git pull origin master

* 이 명령어를 실행하면 `origin` 원격 저장소의 `master` 브랜치에서
* 변경된 내용이 로컬 저장소로 가져와집니다.

 

git fetch

`git fetch` 명령어는 원격 저장소에서 변경된 내용을 확인합니다. 이 명령어는 다음과 같은 형식으로 사용됩니다.

git fetch [remote]

* 여기서 `[remote]`는 원격 저장소의 이름입니다. 
* `origin`이라는 원격 저장소에서 변경된 내용을 확인하려면 다음과 같이 입력합니다.

git fetch origin

* 이 명령어를 실행하면 `origin` 원격 저장소에서 변경된 내용을 확인할 수 있습니다.
* 하지만 이 명령어는 로컬 저장소에 변경된 내용을 반영하지 않습니다.
* 따라서 `git fetch` 명령어를 실행한 후에는
* `git merge` 명령어를 사용하여 변경된 내용을 로컬 저장소에 반영해야 합니다.

 

git merge

`git merge` 명령어는 두 개의 브랜치를 병합합니다. 이 명령어는 다음과 같은 형식으로 사용됩니다.

git merge [branch]

* 여기서 `[branch]`는 병합할 브랜치의 이름입니다.
* `develop` 브랜치를 `master` 브랜치에 병합하려면 다음과 같이 입력합니다.

git merge develop

* 이 명령어를 실행하면 `develop` 브랜치의 변경 내용이 `master` 브랜치에 병합됩니다.

 

git clone

`git clone` 명령어는 원격 저장소에서 코드를 복제합니다. 이 명령어는 다음과 같은 형식으로 사용됩니다.

git clone [url]

* 여기서 `[url]`은 복제할 원격 저장소의 URL입니다.
* GitHub에서 호스팅되는 `my-project`라는
* 프로젝트를 복제하려면 다음과 같이 입력합니다.

git clone https://github.com/my-username/my-project.git

* 이 명령어를 실행하면 `my-project` 프로젝트가 로컬 컴퓨터로 복제됩니다.

 


Git 명령어(저장소 생성)


Git 저장소는 소스 코드가 저장되는 공간입니다. Git 저장소를 생성하려면 다음과 같은 명령어를 사용합니다.

※ git의 명령어를 사용하려면 .git 폴더가 있는 디렉토리로 터미널을 이동한 후 명령어를 작성해야 합니다.

$ git init

* 위 명령어를 실행하면 현재 디렉토리에 Git 저장소가 생성됩니다.
* 이제부터 해당 디렉토리에서 Git을 사용할 수 있게 됩니다.

 

원격 저장소와 로컬 저장소

Git 저장소는 로컬 저장소와 원격 저장소로 나뉩니다.

로컬 저장소는 개발자가 작업하는 컴퓨터에 있는 저장소이고

원격 저장소는 여러 개발자가 함께 작업하는 공유 저장소입니다.

로컬 저장소를 생성하려면 위에서 설명한 `git init` 명령어를 사용합니다. 반면, 원격 저장소를 생성하려면 다음과 같은 명령어를 사용합니다.

$ git remote add origin <원격 저장소 URL>

* 위 명령어에서 `<원격 저장소 URL>`은 원격 저장소의 주소입니다.
* 원격 저장소를 생성한 후에는 `git push` 명령어를 사용하여
* 로컬 저장소의 변경 내용을 원격 저장소에 업로드할 수 있습니다.

 

Git 저장소 복제

Git 저장소를 복제하려면 다음과 같은 명령어를 사용합니다

$ git clone <원격 저장소 URL>

* 위 명령어에서 `<원격 저장소 URL>`은 복제할 원격 저장소의 주소입니다.
* 이 명령어를 실행하면 원격 저장소의 내용이 로컬 컴퓨터로 복제됩니다.
* 이제부터 해당 디렉토리에서 Git을 사용할 수 있습니다.

 

Git 저장소 삭제

Git 저장소를 삭제하려면 해당 디렉토리에서 다음과 같은 명령어를 사용합니다.

$ rm -rf .git

* 위 명령어를 실행하면 Git 저장소가 삭제됩니다.
* 이 명령어는 매우 강력하므로 신중하게 사용해야 합니다.

 


Git 명령어(변경내역 확인)


변경 내역 확인 명령어는 git에서 가장 자주 사용되는 명령어 중 하나입니다.

아래 코드는 이전에 커밋한 내용과 현재 작업 중인 내용을 비교하여 변경된 부분을 확인할 수 있습니다.

git diff
* git diff 명령어는 현재 작업 중인 파일과 이전에 커밋한 파일의 차이점을 보여줍니다.
* 이 명령어를 사용하면 변경된 부분을 쉽게 확인할 수 있습니다.

git log
* git log 명령어는 커밋한 내용을 확인할 수 있습니다.
* 이 명령어를 사용하면 커밋한 내용과 해당 내용의 
* 해시값, 작성자, 작성일 등을 확인할 수 있습니다.


git show [커밋 해시값]
* git show 명령어는 특정 커밋의 변경 내역을 확인할 수 있습니다.
* 이 명령어를 사용하면 해당 커밋의 변경 내역과 파일 내용을 확인할 수 있습니다.
* git show [커밋 해시값]에서 커밋 해시값이란,
* 각각의 git 커밋을 고유하게 식별하는 40자리 길이의 16진수 값입니다.
* 이 값은 git log 명령어를 통해 확인할 수 있습니다.

* ex) commit 5157182758881782731
* 이 커밋의 해시값은 5157182758881782731입니다.

 


Git 명령어(변경 내역 추가 및 커밋)


커밋하기

Git에서 커밋은 변경 내역을 저장하는 작업입니다. 커밋을 하면 변경된 내용이 버전 관리 시스템에 저장되며, 나중에 이전 버전으로 돌아갈 수 있습니다.

git commit

* `git commit` 명령어는 스테이지에 있는 파일들을 커밋하는 명령어입니다.
* 커밋 메시지도 함께 작성해야 합니다.
* `hello.py` 파일을 스테이지에 추가한 후
* 다음과 같이 `git commit` 명령어를 사용하여 커밋할 수 있습니다.

$ git commit -m "Update hello.py"

* 위 명령어를 실행하면 `hello.py` 파일이 커밋되며,
* 커밋 메시지도 함께 작성됩니다.


* `git commit --amend` 명령어는 최근 커밋을 수정하는 명령어입니다.
* 이 명령어를 사용하면 최근 커밋의 메시지나 변경 내용을 수정할 수 있습니다.
* 최근 커밋 메시지를 수정하고 싶다면
* 다음과 같이 `git commit --amend` 명령어를 사용할 수 있습니다.

$ git commit --amend -m "Update hello.py and world.py"


* 위 명령어를 실행하면 최근 커밋의 메시지가 수정되며,
* 변경 내용도 함께 수정됩니다.

 

변경 내역 추가하기

Git에서 변경 내역을 추가하는 방법은 크게 두 가지가 있습니다. 하나는 `git add` 명령어를 사용하는 것이고, 다른 하나는 `git commit -a` 명령어를 사용하는 것입니다

git add

* `git add` 명령어는 변경된 파일을 스테이지에 추가하는 명령어입니다.
* 스테이지란 변경된 파일들이 저장되는 공간으로,
* 이후에 커밋할 때 이 스테이지에 있는 파일들만 커밋 대상이 됩니다.

* 예를 들어, `hello.py` 파일에 수정 사항이 있었다면 다음과 같이
* `git add` 명령어를 사용하여 스테이지에 추가할 수 있습니다.

$ git add hello.py

* 위 명령어를 실행하면 `hello.py` 파일이 스테이지에 추가됩니다.
* 이후에 `git commit` 명령어를 사용하여 커밋을 할 수 있습니다.

git commit -a

* `git commit -a` 명령어는 변경된 파일을 스테이지에 추가하고 커밋하는 명령어입니다.
* `-a` 옵션을 사용하면 변경된 모든 파일을 자동으로 스테이지에 추가합니다.

* 예를 들어, `hello.py`와 `world.py` 파일에 수정 사항이 있었다면
* 다음과 같이 `git commit -a` 명령어를 사용하여 커밋할 수 있습니다.

$ git commit -a -m "Update hello.py and world.py"

* 위 명령어를 실행하면 `hello.py`와 `world.py` 파일이 자동으로 스테이지에 추가되고,
* 커밋 메시지도 함께 작성할 수 있습니다.

 


Git 명령어(브랜치 관리)


브랜치 생성하기
$ git branch <브랜치 이름>

* 위 명령어를 입력하면 새로운 브랜치가 생성됩니다.
* feature 브랜치를 생성하려면 다음과 같이 입력합니다.

$ git branch feature

 

브랜치 전환하기
$ git checkout <브랜치 이름>

* 위 명령어를 입력하면 해당 브랜치로 전환됩니다. 
* feature 브랜치로 전환하려면 다음과 같이 입력합니다.

$ git checkout feature

 

브랜치 삭제하기
$ git branch -d <브랜치 이름>

* 위 명령어를 입력하면 해당 브랜치가 삭제됩니다. 
* feature 브랜치를 삭제하려면 다음과 같이 입력합니다.

$ git branch -d feature

 

브랜치 병합하기
$ git merge <브랜치 이름>

* 위 명령어를 입력하면 해당 브랜치와 현재 브랜치가 병합됩니다. 
* feature 브랜치와 master 브랜치를 병합하려면 다음과 같이 입력합니다.

$ git checkout master
$ git merge feature

 

브랜치 리스트 보기
$ git branch

* 위 명령어를 입력하면 현재 저장소에 있는 모든 브랜치 리스트를 볼 수 있습니다.

 


마무리


Git은 개발자들에게 매우 유용한 도구 중 하나입니다. Git을 사용하면 코드의 변경 사항을 추적하고, 이전 버전으로 돌아갈 수 있으며, 다른 개발자들과 협업할 수 있습니다. 이번 포스트에서는 Git의 원격 저장소로 전송하는 명령어와 함께 간단한 예제를 소개했습니다.

제가 공부하려고 여러군데 참조하여서 만든거라 살짝 부족할수도 있으나, 이러한 명령어들을 잘 활용하여 Git을 보다 효율적으로 사용해보세요.

반응형