본문 바로가기

공부기록용

[인프런 강의] 초보자를 위한 git & github 기본기

설치
1. https://git-scm.com/install/windows → 설치후 git bash 실행
2. bash창은 터미널과 동일, bash창에서 git 입력했을 때, git관련 용어들이 출력되면 설치가 문제없이 된 것.

1. ls: 현재 폴더가 갖는 폴더와 파일들이 출력된다.
2. pwd: 현재 위치 경로를 출력한다.
3. cd: 이동, ../: 상위 폴더로 이동
4. mkdir: 폴더를 만드는 명령어
5. rm: 파일/폴더를 지우는 명령어, rm -r '폴더명' → 폴더가 갖는 하위 파일들까지 모두 삭제
6. touch: 파일 생성하는 명령어
7. ctrl+L 또는 clear: 화면 정리하는 명령어

 

3. github로 로그인한 후, new → repository 생성한 후,
4. google에 `ssh keygen github` 검색한 후 운영체제에 맞게 ssh 키를 생성하고, ssh-agent에 추가한다.
   참고 url: https://docs.github.com/ko/enterprise-cloud@latest/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent

82103@LAPTOP-I5DFCT2T MINGW64 ~
$ ssh-keygen -t rsa -b 4096 -C "github에 등록된 이메일 주소"
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/82103/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Users/82103/.ssh/id_rsa
Your public key has been saved in /c/Users/82103/.ssh/id_rsa.pub
The key fingerprint is:
생략
The key's randomart image is:
+---[RSA 4096]----+
생략
+----[SHA256]-----+


5. id_rsa는 비공개키, id_rsa.pub은 공개키, 이제 github의 SSH and GPG keys를 등록

82103@LAPTOP-I5DFCT2T MINGW64 ~
$ eval $(ssh-agent)
Agent pid 1019

82103@LAPTOP-I5DFCT2T MINGW64 ~
$ ssh-add ~/.ssh/id_rsa
Identity added: /c/Users/82103/.ssh/id_rsa (github에 등록된 이메일 주소)

82103@LAPTOP-I5DFCT2T MINGW64 ~
$ touch .ssh/config

82103@LAPTOP-I5DFCT2T MINGW64 ~
$ vim .ssh/config


Esc → I(i): 수정 가능한 상태
위와 같은 내용을 입력후
Esc → :wq! → 엔터: 수정한 내용이 저장되고, 명령어를 입력할 수 있는 상태로 돌아옴.

github의 ssh and gpg keys에 new 하고, add new ssh key를 수행한다.
title에는 my_ssh_key,  key에 아래 key를 붙여넣는다.

82103@LAPTOP-I5DFCT2T MINGW64 ~
$ cat .ssh/id_rsa.pub
// 아래는 복사할 키
생략


7. ssh 생성 완료
8. 설정

   git config --global user.email "github에 등록된 이메일 주소"
   git config --global user.name "github 사용자 이름"


9. git이 관리하는 폴더

82103@LAPTOP-I5DFCT2T MINGW64 ~
$ mkdir test

82103@LAPTOP-I5DFCT2T MINGW64 ~
$ cd test

82103@LAPTOP-I5DFCT2T MINGW64 ~/test
$ git init
Initialized empty Git repository in C:/Users/82103/test/.git/

82103@LAPTOP-I5DFCT2T MINGW64 ~/test (main)
$ git status
On branch main

No commits yet

nothing to commit (create/copy files and use "git add" to track)

82103@LAPTOP-I5DFCT2T MINGW64 ~/test (main)
$ git branch

82103@LAPTOP-I5DFCT2T MINGW64 ~/test (main)
$ git branch -M main

82103@LAPTOP-I5DFCT2T MINGW64 ~/test (main)
$ git branch

82103@LAPTOP-I5DFCT2T MINGW64 ~/test (main)
$ touch first.txt

82103@LAPTOP-I5DFCT2T MINGW64 ~/test (main)
$ git status
On branch main

No commits yet

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        first.txt

nothing added to commit but untracked files present (use "git add" to track)

82103@LAPTOP-I5DFCT2T MINGW64 ~/test (main)
$ git add first.txt

82103@LAPTOP-I5DFCT2T MINGW64 ~/test (main)
$ git status
On branch main

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)
        new file:   first.txt


82103@LAPTOP-I5DFCT2T MINGW64 ~/test (main)
$ git log
fatal: your current branch 'main' does not have any commits yet

82103@LAPTOP-I5DFCT2T MINGW64 ~/test (main)
$ git commit -m "first commit"
[main (root-commit) 85032ea] first commit
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 first.txt

82103@LAPTOP-I5DFCT2T MINGW64 ~/test (main)
$ git log
commit 85032ea23583c030b158842fd12c9bc0eab39c49 (HEAD -> main)
Author: github사용자 이름 <github에 등록된 이메일주소>
Date:   Sun Nov 9 21:54:12 2025 +0900

    first commit


10. github 등록

    git remote add origin <origin주소>: origin주소는 ssh로
    git push -u origin main

github add 혹은 commit
git add 취소는 git reset으로,
staging 안된 파일을 git add (파일명) 하면,
해당 파일은 staged 된다. 변경사항이 감지된 빨간색 파일은 Unstaged 상태로,
git add 후에 staging area에 올라간(commit 준비 완료) 상태가 된다(초록색으로 변경됨)

1. staging된 파일을 다시 Unstaged상태로 되돌리기: git reset <파일명>
2. git commit 취소는 soft/hard 방식이 존재한다.
	- git reset --soft <번호>: 이전 커밋으로, 변경된 것들은 staging
	- git reset --hard <번호>: 이전 커밋으로, 변경된 것들은 삭제
3. git reset HEAD
	- git commit history에서 몇 개의 commit 전으로 돌아가는 것,
	- commit 이후의 파일들은 모두 staging 전단계로 돌아간다(Unstaged).
4. .gitignore파일
	- git 기록에서 무시하고 싶거나 숨겨야 할 파일들을 이 파일에 명시하면,
	  git에서 자동적으로 인식해 해당 파일/폴더를 add/commit 할 수 없도록 해준다.


git branch 생성/삭제
1. git branch 생성
- git branch <브랜치명>

82103@LAPTOP-I5DFCT2T MINGW64 ~/test (main)
$ git branch
* main

82103@LAPTOP-I5DFCT2T MINGW64 ~/test (main)
$ git branch test

82103@LAPTOP-I5DFCT2T MINGW64 ~/test (main)
$ git branch
* main
  test

82103@LAPTOP-I5DFCT2T MINGW64 ~/test (main)
$ git checkout -b test
fatal: a branch named 'test' already exists

82103@LAPTOP-I5DFCT2T MINGW64 ~/test (main)
$ git checkout test
Switched to branch 'test'

 

- git checkout -b <브랜치명>: 브랜치를 새로 생성한 후, 해당 브랜치로 checkout

git merge
다른 브랜치의 내용을 합칠 때 사용하는 명령어,
합친 후에도 브랜치는 남아있다. 대신 다른 브랜치의 커밋 히스토리는 합치지 않는다.
다른 브랜치의 최종 결과물만 합친다.
git branch -d <브랜치명>: merge를 해야만 브랜치를 삭제할 수 있다.
git branch -D <브랜치명>: 브랜치가 분지해서 생성한 모든 히스토리를 제거, merge하지 않아도 제거된다. 강제 브랜치 제거.

반응형