git 시작하기

git 시작하기

git 설치하기

git cli 와 gui를 모두 설치한다

이때 gui를 설치하지 않아도 되지만, 이런 경우 ssh 설정이 복잡하므로 간단하게 설치를 마쳐준다.
만약 ubuntu의 경우는 패키지 매니저인 apt-get을 사용하여 다음과 같이 설치한다.

1
sudo apt-get install git-all

git home 디렉토리 변경하기

git 아이콘을 우클릭하여 대상 뒤의 –cd-home을 없애고

시작위치에 원하는 위치를 넣어준다.

원격 repo 연결하기

git 세팅을 완료했다면 온라인 상의 코드들을 조작하기 위해 git 서버에 연결한다.
git 서버에 연결하는 방법은 2가지가 있는데, 하나는 http 방식이고 다른 하나는 ssh 방식이다.

먼저, ssh를 활용하여 연결하기 위해서 컴퓨터의 ssh key를 생성하고, 생성된 공개키는 git에 등록한다.
공개키를 사용하려면 일단 공개키를 만들어야 하는데, 공개키를 만드는 방법은 모든 운영체제가 비슷하다.
먼저 키가 있는지부터 확인하자. 사용자의 SSH 키들은 기본적으로 사용자의 ~/.ssh 디렉토리에 저장한다.

리눅스 혹은 ubuntu의 경우 ssh-keygen을 통해 공개키/개인키 쌍을 생성할 수 있다.

1
ssh-keygen

위 명령어를 통해 공개키를 생성하였으면 ~/.ssh 디렉토리에 id_rsa.pub가 생성되었을 것이다.
해당 공개키를 git 홈페이지의 repository의 설정에서 등록해 주면 된다.

참조

git pull 명령을 수행하는 동중 permission denied가 되는 경우가 있는데 이는 특정 유저에게 해당 파일에 대한 변경 권한이 없는 것으로 다음과 같이 해결한다.

1
2
chown <USER>.<GROUP> -R /home/<USER>/.config
chown <USER>.<GROUP> -R /home/<USER>/.gitconfig

만약 위처럼 ssh를 통해 연결이 어렵다면 pull 혹은 clone 시에 https를 기반으로 받으면 ssh 연결이 아닌 https를 통해 받을 수 있으니 시도해 보기 바란다.

git 명령어 모음

브랜치 생성 및 변경

1
2
git branch [브랜치명]
git checkout [브랜치명]

git branch [브랜치명] 명령어로 브랜치를 생성하고
git checkout [브랜치명] 명령어를 통해 브랜치를 변경한다.
여기서 checkout은 단순히 브랜치를 옮기는 것으로 지금까지의 변경내용이 바뀌지 않고 해당 브랜치로 이동하기 때문에
해당 브랜치에 지금의 변경내용이 전부 반영된다.

브랜치 삭제하기

git branch -d [branch Name]

추가된 파일 포함시키고 커밋하기

파일 추가
git add

커밋하기

1
git commit -m "메세지"

원격저장소에 사용하기

업스트림(upstream) 브랜치 설정
로컬 저장소를 init 명령어로 생성했을땐 수동으로 업스트림 브랜치를 설정할 필요가 있다. 업스트림 브랜치란 원격 저장소와 바로 연결된 로컬 저장소를 말하며 push나 pull 명령등에서 원격 저장소 이름을 생략할 수 있게 한다.

1
git push --set-upstream origin master

원격 저장소와 코드를 주고 받기 위해 가장 먼저 해야 할 일은 원격 저장소가 어디에 있는지를 알려주는 일이다.
다음과 같은 코드를 입력하기 원격저장소 origin의 위치를 등록해 준다.

1
git remote add origin git@github.com:hea9549/expiritAdmin.git

밀어넣기
git push origin [branch]

강제로 밀어넣기
git push -u origin master

머지하기
git checkout master를 통해 마스터로 이동한다
git merge [commit name]

풀받기
git pull [remote 저장소] [브랜치]

커밋을 되돌리기

이번에는 기존에 한 커밋을 되돌리는 법을 배운다.

먼저 커밋 내역을 확인할 수 있도록 log를 확인한다.

1
git log

뒤로 돌리기

1
git revert HEAD

명령어를 통해 HEAD에 마지막으로 커밋된 내용을 뒤로 돌린다.

원격 브랜치 가져오기

git checkout -t origin/eventsource

로컬 작업 내용 버리기 혹은 저장하기

당신이 어떤 프로젝트에서 한 부분을 담당하고 있다고 하자. 그리고 여기에서 뭔가 작업하던 일이 있고 다른 요청이 들어와서 잠시 브랜치를 변경해야 할 일이 생겼다고 치자. 아직 완료하지 않은 일을 커밋하는 것은 좀 껄끄럽다. 이런 상황에서는 커밋하지 않고 나중에 다시 돌아와서 작업을 다시 하고 싶을 것이다. 이 문제는 git stash라는 명령으로 해결할 수 있다.

1
2
3
git stash // stash difference
git stash clear // deled stased
git stash list // list up stashed

과거의 커밋 내용을 수정하기

open source 활동을 하거나 혹은 대규모의 프로젝트를 진행할때 겪는 가장 큰 문제는 내가 작성한 과거의 코드내용, 즉 과거의 커밋 내용을 수정하는 것이다.

대부분의 경우 feature 브랜치에서 많은 내용을 수정하고 중간중간 변경 사항에 대해 commit 으로 기록하기 때문에 과거의 커밋을 바꾸기 위해서는 까마득한 예전의 코드로 돌아가 그 특정 부분을 수정하고 그 뒤의 변경사항을 다시 재적용 시키는 일이 필요하다.

이 경우에는 git rebase 명령을 사용하여 해결할 수 있으며 다음과 같은 절차를 거친다.

  1. git log 를 통해 나의 이전 커밋 내용을 확인한다.

  2. git rebase -i HEAD~n 를 통해 HEAD로 부터 얼마나 뒤 내용을 수정하고 rebase를 진행할지 정해준다. 가령 HEAD 로 부터 3 번째 커밋부터의 커밋들에 수정사항이 있다면 git rebase -i HEAD~3 명령어를 입력한다.

  3. 위 명령어를 입력하면 과거의 커밋들이 나타나고 커밋명 앞에 pick 이라는 키워드가 있다. 여기서 우리가 수정하기를 원하는 커밋의 pick 키워드를 e(edit) 으로 바꿔준다.

  4. 이제 git이 edit 하고자 하는 커밋으로 코드를 돌려주고 원하는 내용을 수정한 뒤에 git commit --amend 를 해주면 해당 커밋을 수정하여 다시 커밋하고 git rebase --continue 명령을 통해 뒤의 커밋들을 쭉 적용시켜 줄 수 있다.

특정 파일만 특정 커밋으로 되돌리기

1
git checkout <COMMIT_HASH> <FILE_NAME>

유용한 기능들

CLI 에서 비밀번호 저장하기

git config credential.helper store

변경내용 임시 저장하기

git stash

임시 저장내용 불러오기

git stash pop

2FA 인증

git authentication

git 에서 2FA 인증을 하는 경우 personal access token을 발급받아서 해야한다.

컴퓨터 구조 | 명령어, 컴퓨터 언어 How to write a service introduction

Comments

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×