개발/정보

Git 기본적인 명령어

스몰스테핑 2023. 8. 24. 15:52

사용하는 프로그램 : https://git-scm.com/downloads

 

Git - Downloads

Downloads macOS Windows Linux/Unix Older releases are available and the Git source repository is on GitHub. GUI Clients Git comes with built-in GUI tools (git-gui, gitk), but there are several third-party tools for users looking for a platform-specific exp

git-scm.com

 

0. git 설치 후 초기 설정

더보기

본인은 다음과 같이 D 드라이브에 githubs 폴더를 만들고 그 안에 repository를 넣어두었다.

해당 폴더 내에서 우클릭을 통해 Git Bash Here를 클릭.

윈 11의 경우 옵션 더보기를 눌러 해당 옵션을 찾아야한다.

 

이후 나오는 프롬프트 창에 다음과 같이 입력

git config --global user.name [깃허브 가입 시 이름]

git config --global user.email [깃허브 가입 시 이메일]

 

[] 괄호는 생략한다.

 

1. 내 컴퓨터에 원격 저장소 가져오기

더보기

원격 저장소 = github / 로컬 저장소 = 내 컴퓨터

 

 

다음과 같이 repository를 모아둘 폴더 위치에서 Git Bash Here.

git clone http://github.com/[내 이름]/[저장소 명].git

[]괄호는 마찬가지로 생략한다.

 

2. 파일 추가 후, 로컬 저장소 -> 원격 저장소로 업로드

더보기

 

파일을 추가 or 수정한 repository 폴더 내부에서 우클릭 후 Git Bash Here.

 

1-1. git add [파일 이름]
1-2. git add *

 

파일 이름을 통해 하나씩 추가해도 되지만, *를 사용해 전체를 추가하는 편

 

git commit -m "Something log"

 

추가된 파일에 남는 로그를 작성한다.

본인은 보통 Add files 23-01-01, Update, Delete, Copy 와 같이 알아보기 쉬운 코드 변경사항같은 것을 메모한다.

 

1. git push origin master
2. git push origin main
3. git push

 

버전마다 다른 것 같은데 내가 맨 처음 git을 접했을때는 1번을 사용했고, 이후 2번을 사용하게 바뀌었다가 어느순간 3번을 그냥 써도 적용되었다.

 

3. 원격저장소에 Push는 안한 상태의 commit log 수정하기 (아직 commit이 로컬 상에 있을 때)

더보기
git commit --amend // 가장 최근 커밋 수정

git log // 여태까지의 커밋 로그 확인
git rebase -i HEAD~3 // 위에서 세 번째 커밋을 수정할 경우

 

마지막 명령어 사용시 다음과 같은 창이 뜬다.

 

pick e499d89 Delete CNAME
pick 0c39034 Better README
pick f7fde4a Change the commit message but push the same commit.

# Rebase 9fdb3bd..f7fde4a onto 9fdb3bd
#
# Commands:
# p, pick = use commit
# r, reword = use commit, but edit the commit message
# e, edit = use commit, but stop for amending
# s, squash = use commit, but meld into previous commit
# f, fixup = like "squash", but discard this commit's log message
# x, exec = run command (the rest of the line) using shell
#
# These lines can be re-ordered; they are executed from top to bottom.
#
# If you remove a line here THAT COMMIT WILL BE LOST.
#
# However, if you remove everything, the rebase will be aborted.
#
# Note that empty commits are commented out

 

이제 수정하고 싶은 커밋 옆의 pick을 reword로 변경.

예를 들어 2, 3번째 커밋을 수정할 경우

pick e499d89 Delete CNAME
reword 0c39034 Better README
reword f7fde4a Change the commit message but push the same commit.

와 같이 변경한 뒤, esc -> :wq를 통해 커밋 리스트를 저장하면 두 개의 커밋을 각각 수정할 수 있는 창이 순서대로 띄워진다. 원하는 대로 수정한 뒤 :wq를 통해 저장.

 

git log를 통해 수정된 내용을 확인 가능하다.

 

3-1. 원격저장소에 Push한 상태의 commit log 수정하기

더보기

force를 통해 수정된 커밋을 강제로 push해주어야 한다. 공식문서에 따르면 최대한 사용하지 않는 것을 권장한다. 다른 팀원들이 로그를 수동으로 수정해야하기 때문.

 

git push --force 브랜치이름

 

4. 같은 계정으로 다른 컴퓨터에서 작업한 내용 불러오기

더보기

본가인 A 컴퓨터에서 작업하고 올리고를 반복하다가 출장 or 경조사로 인해 잠시 노트북 B를 들고 이동하여 타지에서 작업하고 올리게 될 경우.

 

노트북 B에 해당 repository가 없다면, 해당문서의 0, 1번을 참고하면 된다.

만약 repository가 있다면, 해당 repository 폴더 내부에서 bash창을 연 뒤 다음과 같이 입력한다.

git pull origin main