본문 바로가기
프로그래밍/Git

Git 사용법 총 정리

by 엔지니어 청년 2024. 1. 31.

GIT 각 명령어를 그림으로 표현하면?


저는 cherry pick을 제외하고는 위의 그림이 Git을 정말 잘 표현한 그림이 아닌가 생각합니다
(cherrypick은 브랜치간 사용되기 때문에 위의 그림에 없습니다. 위의 그림은 하나의 브랜치에서 일어나는 일이라고 보면 편합니다.)

모두 아시다시피 Git은 소프트웨어 개발에서 코드의 버전 관리를 위해 널리 사용되는 도구입니다. Git을 사용하면 여러 가지 이점이 있습니다:

  1. 버전 관리: Git을 사용하면 프로젝트의 모든 변경 사항을 추적할 수 있습니다. 예를 들어, 어떤 코드가 언제, 누구에 의해 수정되었는지 알 수 있습니다. 이는 문제가 발생했을 때 원인을 찾아내거나 이전 버전으로 되돌아가는 데 유용합니다.
  2. 협업: 여러 사람이 동시에 같은 프로젝트에 작업할 때 Git은 매우 유용합니다. 각 개발자는 자신의 로컬 저장소에서 작업하고, 작업이 완료되면 중앙 저장소에 변경 사항을 푸시(push)할 수 있습니다. 이를 통해 여러 사람이 동시에 작업하더라도 코드 충돌을 최소화할 수 있습니다.
  3. 브랜치와 병합: Git의 브랜치 기능을 사용하면 코드베이스에서 분기하여 독립적으로 작업할 수 있습니다. 예를 들어, 새로운 기능을 개발하거나 버그를 수정하는 데 사용할 수 있습니다. 작업이 완료되면 해당 브랜치를 메인 브랜치에 병합(merge)할 수 있습니다.

예를 들어, 김씨와 조씨가 같은 프로젝트에 작업하고 있다고 가정해봅시다. 김씨는 새로운 기능을 개발하기 위해 feature라는 새 브랜치를 만들고, 조씨는 main 브랜치에서 버그 수정 작업을 계속합니다.  김씨의 작업이 완료되면, 그는 feature 브랜치를 main 브랜치에 병합하여 새로운 기능을 프로젝트에 추가할 수 있습니다. 이 모든 과정에서 김씨와 조씨는 (같은 파일을 건드리지 않았다는 전제 하에)서로의 작업에 영향을 주지 않으면서 동시에 작업할 수 있습니다.

  1. 원격 저장소: Git은 원격 저장소를 지원하여 코드를 안전하게 백업하고 다른 사람과 공유할 수 있습니다. 가장 대표적인 원격 저장소 서비스로는 GitHub, GitLab, Bitbucket 등이 있습니다.

따라서 Git은 코드의 버전 관리, 협업, 브랜치 관리 등을 위한 필수 도구입니다.

그럼 지금부터 Git에대해서 하나씩 예시를 통해 배워보도록 하겠습니다.

GIT 명령어


개인적으로 Git은 예제와 실습을 통해 익히는 것이 가장 효과적이라고 생각합니다.
예시를 보면서 한번씩 따라해보시면 많은 도움이 되리라 믿습니다.

그럼 지금부터 각 명령어 별 설명을 시작하겠습니다

add

git add [파일경로&파일명 or 디렉토리]

git add는 작업 디렉토리에서 변경된 파일들을 staging 영역에 추가하는 역할을 합니다.
작업 디렉토리에서 파일을 수정하거나 새로운 파일을 생성하면, 그 변경 사항은 Git에 의해 추적되지만 아직 버전 관리에 포함되지 않습니다. 이런 상태의 파일들을 ‘Untracked’ 또는 ‘Modified’ 상태라고 합니다.
git add 명령어를 사용하면, 이런 ‘Untracked’ 또는 ‘Modified’ 상태의 파일들을 staging 영역에 추가할 수 있습니다. staging 영역에 추가된 파일들은 ‘Staged’ 상태가 되며, 이후 git commit 명령어를 통해 저장소에 커밋될 수 있습니다.
따라서, git add는 변경 사항을 커밋하기 위한 준비 단계라고 할 수 있습니다. 이 명령어를 통해 어떤 변경 사항을 커밋할 것인지를 선택할 수 있습니다. 예를 들어, git add . 명령어는 현재 디렉토리의 모든 변경 사항을 staging 영역에 추가합니다.
add를 하기전에 꼭 git diff 를 통해서 변경점이 내가 변경한 부분만 들어가는 것이 맞는지 확인하시기 바랍니다.

git add test.txt

Commit

git commit [파일경로&파일명 or 디렉토리]

  1. git commit: 이 명령어는 staging 영역에 있는 변경 사항들을 저장소에 커밋합니다. 이 명령어를 사용하기 전에 git add 명령어를 사용하여 변경 사항을 staging 영역에 추가해야 합니다. 즉, git commit은 git add로 staging된 변경 사항만 커밋합니다.
  2. git commit -a: 이 명령어는 작업 디렉토리의 모든 변경 사항을 자동으로 staging area에 추가하고, 그 후에 이러한 변경 사항을 저장소에 커밋합니다. 즉, git commit -a는 git add와 git commit을 한 번에 수행하는 것과 같습니다.
                             주의할점은 git commit -a와 git add . 후에 git commit을 하는 것이 다르다는 것입니다.
                             git commit -a는 이미 추적 중인 파일에 대한 변경 사항만 스테이징 영역에 추가하고 커밋합니다. 즉, 새로 생성된 파일은 무시됩니다.
                             반면에, git add .는 현재 디렉토리와 그 하위 디렉토리의 모든 변경 사항을 스테이징 영역에 추가합니다. 이는 새로 생성된 파일도 포함됩니다.
                             그 후 git commit을 하면 스테이징 영역의 모든 변경 사항이 커밋됩니다.
                             따라서, git commit -a는 git add . 후에 git commit을 하는 것과는 약간 다른 동작을 합니다. 특히 새로 생성된 파일을 다루는 방식에서 차이가 있습니다.

git commit -a를 사용하면 작업 디렉토리의 모든 변경 사항을 한 번에 커밋할 수 있지만, 특정 파일들만 커밋하고 싶거나 새로 생성된 파일이 있는 경우는 때는 git add와 git commit을 따로 사용하는 것이 좋습니다.

git commit
git commit -a # add까지 한번에 해주는 명령어

Push

git push <원격 저장소 - git remote command> <branch>

git push는 로컬 저장소의 변경 사항을 원격 저장소에 업로드하는 Git 명령어입니다.
git commit 명령어를 사용하여 로컬 저장소에 변경 사항을 커밋한 후, 이 변경 사항들을 원격 저장소와 동기화하기 위해 git push 명령어를 사용합니다. 이렇게 하면 원격 저장소가 로컬 저장소의 최신 상태를 반영하게 됩니다.
<원격 저장소>는 변경 사항을 푸시할 원격 저장소의 이름이며, <브랜치>는 푸시할 브랜치의 이름입니다. 예를 들어, origin이라는 원격 저장소에 master 브랜치를 푸시하려면 다음과 같이 명령어를 입력합니다:

git push origin master

 

Clone

git clone <원격 저장소 URL>

git clone은 원격 저장소의 복사본을 로컬 컴퓨터의 work directory에 생성하는 Git 명령어입니다.
이 명령어는 원격 저장소의 모든 파일과 커밋 히스토리를 포함하는 새로운 디렉토리를 로컬에 생성합니다. 
이 새로운 디렉토리는 Git의 작업 디렉토리, 스테이징 영역, 그리고 로컬 저장소를 모두 포함합니다. 즉, git clone 명령어는 원격 저장소의 모든 내용을 로컬에 복제하여 독립적인 작업 환경을 제공합니다.
따라서, git clone은 원격 저장소를 로컬의 작업 디렉토리에 복사하는 것이며, 이 과정에서 스테이징 영역과 로컬 저장소도 함께 생성됩니다. 이렇게 하면 원격 저장소의 프로젝트를 로컬에서 직접 작업할 수 있게 됩니다

git clone https://github.com/JoJunYeong/Practice.git

pull

git pull <원격 저장소 - git remote  command> <branch>

git pull은 원격 저장소의 변경 사항을 로컬 저장소로 가져오는 Git 명령어입니다.
이 명령어는 원격 저장소의 최신 커밋을 로컬 저장소로 가져와서 현재 작업 중인 브랜치에 병합합니다. 이 과정은 git fetch와 git merge 명령어를 순차적으로 실행하는 것과 동일합니다.

git pull origin master

우리회사 gerrit에서 pull 하는경우 다음과 같은 명령어 형식으로 자주 쓰입니다.

git pull

reset

reset은 commit과 branch 2가지 방향으로 쓰일 수 있습니다. 

git reset <options> <remote/branch 또는 commit id>

`git reset`은 Git에서 매우 중요한 명령어로, 주로 커밋을 되돌리거나 스테이징 영역을 조작하는 데 사용됩니다. `git reset`에는 주로 세 가지 주요 옵션이 사용됩니다: `--soft`, `--mixed`, `--hard`.

1. git reset --soft <commit>: 이 명령어는 HEAD를 지정된 커밋으로 이동시키지만, 스테이징 영역과 작업 디렉토리는 그대로 둡니다. 즉, 이 명령어를 사용하면 이전 커밋으로 되돌릴 수 있지만, 변경 사항은 여전히 스테이징되어 있어 바로 커밋할 수 있습니다. 부모commit 이 바뀐다고 생각하시면 편합니다.

2. git reset --mixed <commit>: 이 명령어는 HEAD와 스테이징 영역을 지정된 커밋으로 이동시키지만, 작업 디렉토리는 그대로 둡니다. 즉, 이 명령어를 사용하면 변경 사항은 여전히 작업 디렉토리에 남아 있지만, 다시 스테이징해야 합니다. 즉, git add 를 다시 해야된다는 말입니다. `git reset --mixed`는 기본 옵션으로, `git reset <commit>`을 실행하면 `--mixed` 옵션이 적용됩니다

3. git reset --hard <commit>: 이 명령어는 HEAD, 스테이징 영역, 그리고 작업 디렉토리를 모두 지정된 커밋으로 이동시킵니다. 즉, 이 명령어를 사용하면 모든 변경 사항이 버려지고, 저장소가 지정된 커밋의 상태로 완전히 되돌아갑니다.

따라서, `git reset` 명령어는 원하는 커밋으로 저장소의 상태를 조절하는 데 매우 유용합니다. 하지만 주의해야 할 점은, `git reset --hard`는 작업 디렉토리의 모든 변경 사항을 버리므로 신중하게 사용해야 한다는 것입니다.

git reset --soft remote/branch

git reset --mixed remote/branch

git reset --hard remote/branch

git reset --hard origin/master

이 예시는 HEAD, 스테이징 영역, 그리고 작업 디렉토리를 모두 origin/master라는 원격 브랜치와 동일한 상태로 이동시킵니다. 즉, 로컬 브랜치의 모든 커밋이 원격 브랜치의 커밋과 정확히 일치하게 됩니다

git reset --soft commit

git reset --mixed commit

git reset --hard commit

git reset --hard 9fceb02

이 예시는 HEAD, 스테이징 영역, 그리고 작업 디렉토리를 모두 9fceb02라는 커밋과 동일한 상태로 이동시킵니다. 즉, 로컬 브랜치의 최상단 커밋이 9fceb02 커밋이 됩니다.

 

fetch

git fetch <options> <remote name> <branch name>

`git fetch`는 원격 저장소에서 커밋, 파일, 브랜치, 태그 등을 로컬로 가져오는 Git 명령어입니다

여기서 `<options>`는 없어도 됩니다. `<remote name>`은 원격 저장소의 이름이고, `<branch name>`은 가져올 브랜치의 이름입니다.

`git fetch`는 가져온 내용을 로컬 코드와 분리하여 저장합니다. 따라서 `git fetch`는 커밋을 하기 전에 정보를 안전하게 검토할 수 있는 방법을 제공합니다.

또한, `git fetch`는 원격 저장소의 변경 사항을 로컬로 가져오지만, 작업 디렉토리의 상태는 그대로 유지합니다. 즉, `git fetch`가 가져온 데이터는 `.git`의 Local repository에 저장되지만, Work Space의 파일들은 변경되지 않습니다.

따라서 `git fetch` 명령어를 사용하면 원격 저장소의 최신 상태를 안전하게 확인하고, 필요한 경우 `git merge`나 `git checkout` 명령어를 사용하여 원격 저장소의 변경 사항을 로컬 브랜치에 병합하거나 체크아웃할 수 있습니다

git fetch origin

위의 예시는 origin이라는 원격 저장소의 변경 사항을 local repository로 가져오는 예시입니다.

rebase

git rebase <branch>

git rebase 명령어는 한 브랜치의 변경 사항을 다른 브랜치에 적용할 때 사용합니다. 이 명령어를 사용하면 커밋 히스토리를 선형적으로 만들 수 있습니다. 선형적이란, 시간순서대로 일렬로 줄 세운다는 의미입니다. 

git rebase는 원래 브랜치의 커밋을 하나씩 가져와서 대상 브랜치에 적용합니다. 이 과정에서 충돌(conflict)이 발생하면 사용자가 수동으로 해결해야 합니다
git rebase를 사용하면 커밋 히스토리가 깔끔해지지만, 과정이 복잡하고 충돌을 해결하는 데 어려움이 있을 수 있습니다. 하지만 내가 개발하는 부분과 연관이 없는 부분을 개발했다면, 축하합니다! Conflict에서 해방되셨습니다 

git checkout feature
# 코드변경 작업....
git rebase master

위의 예시는 workspace를 feature 브랜치로 바꾼 후 local repository에 있는 master 브랜치를  workspace의 feature 브랜치에 적용하는 예시입니다. (master 브랜치에서 feature 브랜치가 갖고 있지 않은 변경점을 모두 데려옵니다.)

 

merge

git merge <branch>

git merge 명령어는 두 개의 브랜치를 합칩니다.


이 명령어를 사용하면 Git은 두 브랜치의 최신 커밋과 공통된 부모commit을 찾아 새로운 'merge commit’을 생성합니다. 이 'merge commit’은 원래의 두 브랜치를 부모로 가집니다. 좀 더 쉽게 예시를 들면, 이는 두개의 그림을 합쳐 새로운 그림을 만드는 작업과도 같습니다. 각각의 그림은 서로 다른 브랜치를 나타내고, 그림에 그려진 내용은 각 브랜치에서 이루어진 작업을 나타냅니다.

git merge를 하면 git은 두 그림을 합쳐서 새로운 그림을 만듭니다. 이 새로운 그림은 원래의 두 그림을 부모로 가지게 됩니다. 하지만 이렇게 하면 그림이 좀 복잡해질 수 있습니다. 왜냐하면 원래의 두 그림이 합쳐진 새로운 그림이기 때문입니다. 하지만 이렇게 하면 원래의 두 그림의 구조를 유지할 수 있다는 장점이 있습니다. 즉, 어떤 작업이 어떤 브랜치에서 이루어졌는지 알 수 있기 때문입니다. 따라서 git merge를 사용하면 커밋 히스토리가 복잡해질 수 있지만, 원래의 브랜치 구조를 유지할 수 있다는 장점이 있습니다

git checkout master
git merge feature

위의 예시는 workspace를 master 브랜치로 바꾼 후 feature 브랜치를 master브랜치로 합치는 예시입니다.

checkout

git checkout <branch>

git checkout은 Git에서 중요한 명령어로, 다른 버전의 대상 엔티티(파일, commit, 브랜치 등) 사이를 전환하는 작업을 수행합니다. git checkout 명령어는 주로 세 가지 엔티티에 작용합니다: 파일, 커밋, 브랜치

  1. 브랜치 체크아웃: git checkout 명령어를 사용하면 다른 브랜치로 전환할 수 있습니다. 예를 들어, git checkout feature 명령어는 feature라는 브랜치로 전환합니다. 이 명령어를 실행하면 작업 디렉토리의 파일들이 선택한 브랜치의 버전과 일치하도록 업데이트되며, Git은 모든 새로운 커밋을 해당 브랜치에 기록하도록 지시합니다.
  2. 파일 체크아웃: git checkout 명령어는 또한 특정 파일의 이전 버전을 복원하는 데 사용될 수 있습니다. 예를 들어, git checkout -- file.txt 명령어는 file.txt 파일을 마지막으로 커밋된 상태로 복원합니다. 해당 파일만 최근 커밋으로 reset --hard 된다고 보면 쉽습니다. 왜냐면 변경했던 기록이 다 날아가기 때문입니다.
  3. 커밋 체크아웃: git checkout 명령어를 사용하면 특정 커밋으로 전환할 수도 있습니다. 예를 들어, git checkout 9fceb02 명령어는 9fceb02라는 커밋으로 전환합니다. 이 경우, HEAD는 지정된 커밋을 가리키게 되며, 작업 디렉토리의 파일들은 해당 커밋의 상태와 일치하도록 업데이트됩니다.

git checkout 명령어는 Git에서 다양한 대상 엔티티 사이를 전환하는 데 매우 유용한 도구입니다.

git checkout feature # workspace를 feature로 전환
git checkout -- file.txt # file.txt 파일을 마지막으로 커밋된 상태로 복원
git checkout 9fceb02 # 9fceb02라는 커밋으로 현재 workspace를 전환

 

rm

git rm <options> <filename>

git rm은 Git에서 파일을 제거하는 데 사용되는 명령어입니다. 이 명령어는 주로 두 가지 방식으로 사용됩니다:

  1. 파일 시스템과 Git 저장소에서 파일 제거: git rm <filename> 명령어는 <filename> 파일을 Git의 인덱스와 파일 시스템에서 모두 제거합니다. 예를 들어, git rm file1.txt 명령어는 file1.txt 파일을 Git 저장소와 파일 시스템에서 모두 제거합니다.
  2. Git 저장소에서만 파일 제거: git rm --cached <filename> 명령어는 <filename> 파일을 Git의 인덱스에서만 제거하고, 파일 시스템에는 그대로 둡니다. 예를 들어, git rm --cached file2.txt 명령어는 file2.txt 파일을 Git 저장소에서 제거하고, 파일 시스템에는 그대로 둡니다. 이 옵션은 이미 git이 해당 파일을 추적중이고, 더이상 git에의해 변경점이 추적되길 원하지 않을 때 유용하게 쓰입니다. 

따라서, git rm 명령어는 필요하지 않은 파일을 Git 저장소나 파일 시스템에서 안전하게 제거하는 데 유용합니다.

git rm file1.txt # file1.txt 파일을 Git 저장소와 파일 시스템에서 모두 제거
git rm --cached file2.txt # file2.txt 파일을 Git 저장소에서 제거하고, 파일 시스템에는 그대로 둡니다.

mv

git mv <file> <file>

git mv는 Git에서 파일을 이동하거나 이름을 바꾸는 데 사용되는 명령어입니다. 이 명령어는 기본적으로 세 가지 작업을 결합합니다:

  1. 파일 시스템에서 파일 이동
  2. 원래 파일에 대한 git rm 실행
  3. 새 파일에 대한 git add 실행

따라서 git mv oldname newname 명령어는 oldname 파일을 newname으로 이동하고, Git 인덱스를 자동으로 업데이트하여 move된 파일을 추적합니다. 또한, git mv 명령어는 파일 이름의 대소문자 변경을 처리하는 데 유용합니다. 예를 들어, mv oldname newname; git add newname; git rm oldname 명령어를 실행하면 대소문자만 변경된 경우 Git은 파일 이름이 변경되지 않았다고 인식할 수 있습니다. 그러나 git mv oldname newname 명령어를 사용하면 Git은 파일 이름의 대소문자 변경을 올바르게 처리합니다. 따라서, git mv 명령어는 Git 저장소에서 파일의 이동이나 이름 변경을 안전하게 처리하는 데 유용합니다.

git mv old_directory/file.txt new_directory/file.txt # old_directory에 있는 file.txt 파일을 new_directory로 이동
git mv oldname.txt newname.txt # oldname.txt 파일의 이름을 newname.txt로 변경하고,oldname.txt 파일을 Git인덱스에서 삭제 및 newname.txt 파일을 Git 인덱스에 추가

 

Stash

git stash <command>

git stash는 Git에서 작업 중인 변경 사항을 임시로 저장하고, 나중에 다시 적용할 수 있게 하는 명령어입니다. 이 명령어는 작업 중인 변경 사항을 임시로 보관하고, 작업 디렉토리를 마지막 커밋 상태로 되돌립니다.

git stash 명령어는 다음과 같은 경우에 유용하게 사용될 수 있습니다:

  1. 다른 작업을 잠시 수행해야 하지만, 현재 변경 사항을 커밋하고 싶지 않은 경우.
  2. 다른 브랜치로 전환해야 하지만, 현재 브랜치의 변경 사항이 완료되지 않은 경우.

git stash 명령어를 실행하면, Git은 현재 인덱스와 작업 디렉토리의 변경 사항을 모두 저장하고, 이를 스택에 쌓아둡니다. 이후에 git stash pop 명령어를 사용하여 가장 최근에 저장한 변경 사항을 다시 적용할 수 있습니다. 또한 git stash list 명령어를 사용하여 현재 저장된 모든 변경 사항의 목록을 확인할 수 있습니다.

git stash # 현재 인덱스와 작업 디렉토리의 변경 사항을 모두 저장하고, 이를 스택에 쌓아둠
git stash save "test" # 현재 인덱스와 작업 디렉토리의 변경 사항을 test 라는 이름으로 스택에 저장
git stash pop # 스택의 가장 위에 있는 저장사항을 불러오고 스택에서 지움
git stash apply # 스택의 가장 위에 있는 저장사항을 불러오고 스택에서 지우지 않음 apply 뒤에 git stash list에서 나온 인덱스 @뒤의 번호를 붙이면 특정 stash를 불러올 수 있다.
git stash list # 현재 스택에 저장된 변경사항의 리스트를 본다.
git stash drop # 스택의 가장 위에 있는 저장사항을 스택에서 지움
git stash clear # 스택에 저장된 모든 변경 사항을 제거

cherrypick

git cherry-pick <commit id>

git cherry-pick은 Git에서 특정 커밋을 선택하여 현재 작업 중인 HEAD에 적용하는 강력한 명령어입니다. 이 명령어는 한 브랜치의 커밋을 다른 브랜치에 적용하는 작업, 즉 'cherry-picking’을 수행합니다.

git cherry-pick은 다음과 같은 경우에 유용하게 사용될 수 있습니다:

  1. 잘못된 브랜치에 커밋이 만들어진 경우. 이 경우, 올바른 브랜치로 전환한 후에 git cherry-pick 명령어를 사용하여 원래의 커밋을 적용할 수 있습니다. 그리고 잘못된 브랜치에서는 커밋을 지우면 됩니다. 단, 변경되는 파일의 부모commit이 같아야 conflict이 일어나지 않습니다. patch파일과 diff 설명을 참고하시기 바랍니다. 만약 부모가 다를수밖에 없다면, conflict를 수동으로 해결하면 됩니다.
  2. 특정 브랜치에서 일부 commit 만을 포함하고 싶은 경우. 이 경우, git cherry-pick 명령어를 사용하여 필요한 커밋만을 선택적으로 적용할 수 있습니다. 단, 변경되는 파일의 부모commit이 같아야 conflict이 일어나지 않습니다. patch파일과 diff 설명을 참고하시기 바랍니다. 만약 부모가 다를수밖에 없다면, conflict를 수동으로 해결하면 됩니다.

따라서, git cherry-pick 명령어는 Git에서 특정 커밋을 선택하여 현재 작업 중인 HEAD에 적용하는 데 매우 유용한 도구입니다.

git cherry-pick 9fceb02 # 커밋 id 9fceb02를 현재 workspace에 적용

remote

git remote <add/-v/remove> <원격저장소>

git remote는 원격 저장소를 관리하는 데 사용되는 명령어입니다.
원격 저장소는 네트워크나 인터넷 상의 다른 위치에 호스팅되는 프로젝트의 버전입니다
git remote 명령어를 사용하면 원격 저장소를 추가, 제거, 이름 변경 등을 할 수 있습니다.

git remote, branch, repository를 쉽게 설명하자면, 마치 제가 만든 코드 모음집과 그 안의 코드들, 그리고 그 모음집을 다른 사람들과 공유할 수 있는 갤러리와 같아요.

  • repository는 제가 만든 코드 모음집과 같아요. 이 모음집 안에는 제가 작성한 모든 코드들이 들어 있습니다.
  • branch는 이 코드 모음집 안의 각각의 코드과 같아요. 각각의 코드는 독립적으로 작성된 작품이며, 각각 다른 스타일이나 주제를 가질 수 있습니다.
  • git remote는 제가 만든 코드를 다른 사람들과 공유할 수 있는 프리마켓과 같습니다. 제가 작성한 코드(프로젝트의 버전)를 이 프리마켓에 전시하거나, 프리마켓에서 코드를 빼거나, 프리마켓의 이름을 바꿀 수 있습니다.

따라서, repository, branch, remote는 서로 다른 목적과 기능을 가지고 있습니다. repository는 여러분의 그림 모음집(프로젝트)을 저장하는 데 사용되며, branch는 모음집 안의 각각의 그림(프로젝트의 버전)을 만들고 관리하는 데 사용됩니다. 마지막으로, remote는 이 작업 내용을 다른 사람들과 공유하는 데 사용됩니다.

git remote # 현재 사용중인 원격 저장소를 보여줍니다.
git remote add origin # 원격 저장소를 origin이라는 이름으로 추가
git remote -v # 현재 설정된 모든 원격 저장소의 목록을 보여줍니다.
git remote remove origin # origin이라는 이름의 원격 저장소를 제거

 

branch

git branch <옵션> <이름>

git branch는 브랜치를 관리하는 데 사용되는 명령어입니다.
브랜치는 독립적인 개발 라인을 나타내며, 새로운 기능을 추가하거나 버그를 수정할 때 새로운 브랜치를 생성하여 변경 사항을 분리시킵니다.
git branch 명령어를 사용하면 브랜치를 생성, 제거, 이름 변경 등을 할 수 있습니다.
예를 들어, git branch feature 명령어는 feature라는 새로운 브랜치를 생성하고, git branch -d feature 명령어는 feature 브랜치를 삭제합니다.

git branch feature # feature라는 새로운 브랜치를 생성
git branch # 현재 local repository 에 있는 모든 브랜치의 목록을 보여줍니다.
git branch -r # 현재 remote repository 에 있는 모든 브랜치의 목록을 보여줍니다.
git branch -d feature # feature 브랜치를 삭제합니다. 단, 삭제하려는 브랜치가 이미 병합된 상태여야 합니다.

'프로그래밍 > Git' 카테고리의 다른 글

Git의 Cherry-pick에 대한 이해  (0) 2024.01.29